Asp.net 2.0 Treeview 动态填充,并实现无限级树,

数据库表关键字段:

表: table1

 

Treeview 动态填充_无限级树_htmltype_id  type_name   per_type_id

Treeview 动态填充_无限级树_html   0        根目录               -1

Treeview 动态填充_无限级树_html   1        子目录                0

Treeview 动态填充_无限级树_html   2        子目录2             0

Treeview 动态填充_无限级树_html   3        子子目录              2

Treeview 动态填充_无限级树_html   Treeview 动态填充_无限级树_taro_07.

Treeview 动态填充_无限级树_html   9        根目录二             -1

Treeview 动态填充_无限级树_html


 C#代码

Treeview 动态填充_无限级树_htmlusing System;

Treeview 动态填充_无限级树_htmlusing System.Data;

Treeview 动态填充_无限级树_htmlusing System.Configuration;

Treeview 动态填充_无限级树_htmlusing System.Collections;

Treeview 动态填充_无限级树_htmlusing System.Web;

Treeview 动态填充_无限级树_htmlusing System.Web.Security;

Treeview 动态填充_无限级树_htmlusing System.Web.UI;

Treeview 动态填充_无限级树_htmlusing System.Web.UI.WebControls;

Treeview 动态填充_无限级树_htmlusing System.Web.UI.WebControls.WebParts;

Treeview 动态填充_无限级树_htmlusing System.Web.UI.HtmlControls;

Treeview 动态填充_无限级树_htmlusing System.Data.SqlClient;

Treeview 动态填充_无限级树_html

Treeview 动态填充_无限级树_html

Treeview 动态填充_无限级树_html

Treeview 动态填充_无限级树_htmlpublic partial class tree : System.Web.UI.Page

Treeview 动态填充_无限级树_sql_25Treeview 动态填充_无限级树_taro_26Treeview 动态填充_无限级树_taro_07{

Treeview 动态填充_无限级树_taro_28  

Treeview 动态填充_无限级树_taro_28    protected void Page_Load(object sender, EventArgs e)

Treeview 动态填充_无限级树_taro_30Treeview 动态填充_无限级树_sql_31    Treeview 动态填充_无限级树_taro_07{

Treeview 动态填充_无限级树_taro_28

Treeview 动态填充_无限级树_taro_28        TreeView1.Nodes.Clear();

Treeview 动态填充_无限级树_taro_28

Treeview 动态填充_无限级树_taro_28        DataTable dt = tree_table();                  

Treeview 动态填充_无限级树_taro_28        DataView dv = new DataView(dt);

Treeview 动态填充_无限级树_taro_28        dv.RowFilter = "type_id = 0";

Treeview 动态填充_无限级树_taro_28

Treeview 动态填充_无限级树_taro_28        foreach (DataRowView drv in dv)

Treeview 动态填充_无限级树_taro_30Treeview 动态填充_无限级树_sql_31        Treeview 动态填充_无限级树_taro_07{

Treeview 动态填充_无限级树_taro_28            TreeNode node = new TreeNode();

Treeview 动态填充_无限级树_taro_28            node.Text = drv["type_name"].ToString();

Treeview 动态填充_无限级树_taro_28            node.Value = drv["type_id"].ToString();

Treeview 动态填充_无限级树_taro_28            node.NavigateUrl = "?s=" + drv["type_id"].ToString();

Treeview 动态填充_无限级树_taro_28            TreeView1.Nodes.Add(node);

Treeview 动态填充_无限级树_taro_28            AddChildNode(dt, node);

Treeview 动态填充_无限级树_taro_50        }

Treeview 动态填充_无限级树_taro_28       

Treeview 动态填充_无限级树_taro_28        

Treeview 动态填充_无限级树_taro_50    }

Treeview 动态填充_无限级树_taro_28

Treeview 动态填充_无限级树_taro_28    private DataTable tree_table()

Treeview 动态填充_无限级树_taro_30Treeview 动态填充_无限级树_sql_31    Treeview 动态填充_无限级树_taro_07{

Treeview 动态填充_无限级树_taro_28       

Treeview 动态填充_无限级树_taro_28        //hooyesDataLink 为配置中数据连接字符串键名

Treeview 动态填充_无限级树_taro_28        SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["hooyesDataLink"]);

Treeview 动态填充_无限级树_taro_28        SqlDataAdapter sda = new SqlDataAdapter("select * from table1", con);

Treeview 动态填充_无限级树_taro_28        DataTable dt = new DataTable();

Treeview 动态填充_无限级树_taro_28        sda.Fill(dt);

Treeview 动态填充_无限级树_taro_28        return dt;

Treeview 动态填充_无限级树_taro_50    }

Treeview 动态填充_无限级树_taro_28

Treeview 动态填充_无限级树_sql_31Treeview 动态填充_无限级树_taro_30    递归以实现无限级树#region 递归以实现无限级树 

Treeview 动态填充_无限级树_taro_28    private void AddChildNode(DataTable dt, TreeNode node)

Treeview 动态填充_无限级树_taro_30Treeview 动态填充_无限级树_sql_31    Treeview 动态填充_无限级树_taro_07{

Treeview 动态填充_无限级树_taro_28        DataView dv = new DataView(dt);//建立dt的表视图

Treeview 动态填充_无限级树_taro_28        dv.RowFilter = "per_type_id = '" + node.Value + "'"; //过滤

Treeview 动态填充_无限级树_taro_28        foreach (DataRowView drv1 in dv)

Treeview 动态填充_无限级树_taro_30Treeview 动态填充_无限级树_sql_31        Treeview 动态填充_无限级树_taro_07{

Treeview 动态填充_无限级树_taro_28            TreeNode ChildNode = new TreeNode(); 

Treeview 动态填充_无限级树_taro_28            ChildNode.Text = drv1["type_name"].ToString();

Treeview 动态填充_无限级树_taro_28            ChildNode.Value = drv1["type_id"].ToString();

Treeview 动态填充_无限级树_taro_28            ChildNode.NavigateUrl = "?s=" + drv1["type_id"].ToString();

Treeview 动态填充_无限级树_taro_28            ChildNode.Expanded = true;//展开属性为FALSE

Treeview 动态填充_无限级树_taro_28

Treeview 动态填充_无限级树_taro_28            node.ChildNodes.Add(ChildNode);

Treeview 动态填充_无限级树_taro_28

Treeview 动态填充_无限级树_taro_28

Treeview 动态填充_无限级树_taro_28            AddChildNode(dt, ChildNode);

Treeview 动态填充_无限级树_taro_50        }

Treeview 动态填充_无限级树_taro_50    }

Treeview 动态填充_无限级树_taro_50    #endregion

Treeview 动态填充_无限级树_taro_28

Treeview 动态填充_无限级树_taro_28

Treeview 动态填充_无限级树_taro_95}

Treeview 动态填充_无限级树_html


效果:

Treeview 动态填充_无限级树_taro_97