ASP.NET2.0 TreeView

 ASP.NET2. 0  TreeView
1 .html代码
< html xmlns = " http://www.w3.org/1999/xhtml "   >
< head runat = " server " >
    
< title > Untitled Page </ title >
    
< script language = " javascript " >
        function chkAll()
        {
            
// debugger;
            var chkall =  document.all[ " chkall " ];
            var chkother
=  document.getElementsByTagName( " input " );
            
for  (var i = 0 ;i < chkother.length;i ++ )
            {
                
if ( chkother[i].type == ' checkbox ' )
                {
                    
if (chkother[i].id.indexOf( ' TreeView1 ' ) >- 1 )
                    {
                        
if (chkall. checked == true )
                        {
                            chkother[i].
checked = true ;
                        }
                        
else
                        {
                            chkother[i].
checked = false ;
                        }
                    }
                }
            }
        }
    
</ script >
</ head >
< body >
    
< form id = " form1 "  runat = " server " >
         
< table width = 100 %  height = 100 %>
            
< tr height = 10 >
                
< td >< input id = " chkall "  type = " checkbox "  onclick = " chkAll(); "   /> 全选 / 取消 </ td >
                
< td >< asp:Button ID = " Button1 "  runat = " server "  Text = " Button "   /></ td >
            
</ tr >
            
< tr valign = top >
                
< td >< asp:TreeView ID = " TreeView1 "  runat = " server "   ></ asp:TreeView ></ td >
                
< td >< iframe id = fMain style = " BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none "
                            src
= ""  frameBorder = " 0 "  width = " 100% "  scrolling = " yes "  height = " 100% " ></ iframe ></ td >
            
</ tr >
            
< tr height = 10 >
                
< td ></ td >
            
</ tr >
        
</ table >

    
</ form >
</ body >
</ html >
2 .cs代码
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;
using  System.Data.SqlClient;

public  partial  class  Page_Wonderful_TreeView_System.Web.UI.Page
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        
if  ( ! Page.IsPostBack)
        {
            
// BindTree();
            InitTree();
        }
    }

    主从表绑定
#region  主从表绑定
    
private   void  BindTree()
    {
        DataSet dst 
=  GetTreeViewData();
        TreeView1.ShowCheckBoxes 
=  TreeNodeTypes.All;
        
foreach  (DataRow masterRow  in  dst.Tables[ " province " ].Rows)
        {
            TreeNode masterNode 
=   new  TreeNode(( string )masterRow[ " province " ]);
            TreeView1.Nodes.Add(masterNode);
            
foreach  (DataRow childRow  in  masterRow.GetChildRows( " Children " ))
            {
                TreeNode childNode 
= new  TreeNode(( string )childRow[ " city " ]);
                masterNode.Expanded 
=   false ;
                masterNode.ChildNodes.Add(childNode);
            }
        }
    }

    
private  DataSet GetTreeViewData()
    {
        
string  constring  =  System.Configuration.ConfigurationSettings.AppSettings[ " ConnectionString " ];
        SqlConnection con 
=   new  SqlConnection(constring);
        SqlDataAdapter daprovince 
=   new  SqlDataAdapter( " SELECT * FROM province " , con);
        SqlDataAdapter dacity 
=   new  SqlDataAdapter( " SELECT * FROM city " , con);
        DataSet ds 
=   new  DataSet();
        daprovince.Fill(ds, 
" province " );
        dacity.Fill(ds, 
" city " );
        ds.Relations.Add(
" Children " , ds.Tables[ " province " ].Columns[ " provinceid " ], ds.Tables[ " city " ].Columns[ " father " ]);
        
return  ds;
    }
    
#endregion

    递归绑定同一个表数据
#region  递归绑定同一个表数据
    
private   void  InitTree()
    {
        DataTable dt 
=  GetTreeViewTable();
        DataView dv 
=   new  DataView(dt);
        dv.RowFilter 
=   " ParentID=0 " ;
        TreeView1.ShowCheckBoxes 
=  TreeNodeTypes.All;
        
foreach  (DataRowView drv  in  dv)
        {
            TreeNode node 
=   new  TreeNode();
            node.Text 
=  drv[ " text " ].ToString();
            node.Value 
=  drv[ " ID " ].ToString();
            node.Expanded 
=   false ;
            TreeView1.Nodes.Add(node);
            AddReplies(dt,node);
        }
    }

    
private  DataTable GetTreeViewTable()
    {
        
string  constring  =  System.Configuration.ConfigurationSettings.AppSettings[ " ConnectionString " ];
        SqlConnection con 
=   new  SqlConnection(constring);
        SqlDataAdapter da 
=   new  SqlDataAdapter( " SELECT * FROM treeview " , con);
        DataTable dt 
=   new  DataTable();
        da.Fill(dt);
        
return  dt;
    }

    
private   void  AddReplies(DataTable dt, TreeNode node)
    {
        DataView dv 
=   new  DataView(dt);
        dv.RowFilter 
=   " ParentID=' "   +  node.Value  +   " ' " ;
        
foreach  (DataRowView row  in  dv)
        {
            TreeNode replyNode 
=   new  TreeNode();
            replyNode.Text 
=  row[ " text " ].ToString();
            replyNode.Value 
=  row[ " ID " ].ToString();
            replyNode.Expanded 
=   false ;
            node.ChildNodes.Add(replyNode);
            AddReplies(dt,replyNode);
        }
    }
    
#endregion
}

你可能感兴趣的:(treeview)