站点导航控件TreeView

1、数据动态从数据库加载
 1 using  System.Data.OleDb;
 2
 3 public   partial   class  Default3 : System.Web.UI.Page
 4 {
 5    protected void Page_Load(object sender, EventArgs e)
 6    {
 7        if (!this.IsPostBack)
 8        {
 9            TreeNode newNode = new TreeNode();
10            newNode.Value = "0";
11            newNode.Text = "我的网站";
12            newNode.PopulateOnDemand = true;
13            newNode.SelectAction = TreeNodeSelectAction.Expand;
14            TreeView1.Nodes.Add(newNode);
15        }

16    }

17    protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
18    {
19        TreeNode newNode;
20        if (e.Node == null)
21        {
22            newNode = new TreeNode();
23            newNode.Value = "0";
24            newNode.Text = "开始站点";
25            newNode.PopulateOnDemand = true;
26            newNode.SelectAction = TreeNodeSelectAction.Expand;
27            TreeView1.Nodes.Add(newNode);
28        }

29        else
30        {
31            string sql = "select * from Data where pid="+e.Node.Value;
32            System.Data.OleDb.OleDbConnection cn = new System.Data.OleDb.OleDbConnection();
33            cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/"+ @"\App_Data\tree.mdb;Persist Security Info=True";
34            cn.Open();
35            OleDbCommand cmd = new OleDbCommand(sql, cn);
36            OleDbDataReader dr = cmd.ExecuteReader();
37            while (dr.Read())
38            {
39                newNode = new TreeNode();
40                newNode.Text = dr["title"].ToString();
41                newNode.Value = dr["id"].ToString();
42                newNode.NavigateUrl = dr["href"].ToString();
43                newNode.PopulateOnDemand = true;
44                newNode.SelectAction = TreeNodeSelectAction.Expand;
45                e.Node.ChildNodes.Add(newNode);
46            }

47            dr.Close();
48            dr.Dispose();
49            cmd.Dispose();
50            cn.Close();
51            cn.Dispose();
52            cn = null;
53            
54        }

55    }

56}

站点导航控件TreeView 
2、SQL动态加载数据,几种触发事件
      1、TreeView 服务器控件的事件
        TreeNodeCheckChange        当TreeView服务器控件的复选框在向服务器的两次发送过程之间有所更改时发生
         SelectedNodeChange           当选择TreeView服务器控件中的节点时发生
        TreeNodeExpanded             当展开TreeView服务器控件中的节点时发生
         TreeNodeCollapsed              当折叠TreeView服务器控件中的节点时发生
         TreeNodePoulate                 当其PopulateOnDemand属性设置为true的节点在TreeView服务器控件中展开时发生reeView
         TreeNOdeDataBound           当数据项绑定到TreeView服务器控件中的节点时发生
      2、节点的选择
          TreeView服务器控件的节点文字有两种模式: 选择模式和导航模式,默认情况下,节点的文字处于 选择模式
          SelectAction属性来指定单击TreeView服务器控件的节点时所触发的事件
          None                   当选择节点时不触发任何事件
         select                  当选择节点时TreeView服务器控件触发SelectNodeChange事件
          Expand               当选择节点时TreeView服务器控件触发TreeNodeExpanded事件
         selectExpand       当选择节点时TreeView服务器控件同时触发SelectNodeChange和TreeNodeEcpand事件

       
using  System.Data.SqlClient;
public   partial   class  Default4 : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{
            DataView DView 
= dv("select * from BCity");
            
foreach (DataRowView drv in DView)
            
{
                TreeNode tn 
= new TreeNode();
                tn.Text 
= drv["CityName"].ToString();
                tn.Value 
= drv["CityID"].ToString();
                tn.Expanded 
= false;
                TreeView1.Nodes.Add(tn);
                AddchildNode(tn);
            }

        }

    }


    
private void AddchildNode(TreeNode tn)
    
{
        
string id = tn.Value.ToString();
        DataView dView 
= dv("select * from SCity where CityID='"+id+"'");

        
foreach (DataRowView drv2 in dView)
        
{
            TreeNode ctn 
= new TreeNode();
            ctn.Text 
= drv2["CityName"].ToString();
            ctn.Value 
= drv2["CityID"].ToString();
            ctn.NavigateUrl 
= "http://aaa.com?id=" + drv2["CityID"].ToString();
            tn.ChildNodes.Add(ctn);
        }

    }


    
private DataView dv(string str)
    
{
        
string mycon = ConfigurationManager.ConnectionStrings["mydbconn"].ToString();
        SqlConnection con 
= new SqlConnection(mycon);
        SqlDataAdapter da 
= new SqlDataAdapter(str,mycon);
        DataSet ds 
= new DataSet();
        da.Fill(ds, 
"tree");
        
return ds.Tables["tree"].DefaultView;
    }

    
protected void Button1_Click(object sender, EventArgs e)
    
{
        
if (TreeView1.CheckedNodes.Count > 0)
        
{
            
foreach (TreeNode tn in TreeView1.CheckedNodes)
            
{
                
if (tn.ChildNodes.Count > 0)
                
{
                    
foreach (TreeNode ctn in tn.ChildNodes)
                    
{
                        Response.Write(ctn.Text 
+ "<br>");
                    }

                }

                
else
                
{
                    Response.Write(tn.Text 
+ "<br>");
                }

            }

        }

    }

    
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    
{
        Response.Write(
"你选择了" + TreeView1.SelectedNode.Text);
    }

    
protected void TreeView1_TreeNodeCollapsed(object sender, TreeNodeEventArgs e)
    
{
        Response.Write(
"你折叠了" + e.Node.Text);
    }

    
protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
    
{
        
if (IsPostBack)
        
{
            Response.Write(
"你展开了" + e.Node.Text);
        }

    }

}

你可能感兴趣的:(treeview)