.net TreeView使用基础

来源:互联网 发布:淘宝众筹网 编辑:程序博客网 时间:2024/05/08 19:42

这里提供一个treeview控件绑定树形层级结构数据的实例:

数据库表结构、数据:

.net  TreeView使用基础 - yes - 赵彦平的网络家园

 

aspx页面:

<asp:treeview ID="myTreeView" runat="server"></asp:treeview>

aspx.cs页面:

protected void Page_Load(object sender, EventArgs e)
        {
            //获取数据集(以你自己的方式获取即可)
            SQLBase sb = new SQLBase();
            DataTable dt = sb.GetDataTable("select id,parentID,Name from TreeData");
            //调用函数,绑定treeview数据源。首次节点集合即为treeview的所有节点,条件即为顶级的父级ID
            BindTree(dt, myTreeView.Nodes, 0);
        }

        /// <summary>
        /// treeview绑定数据源
        /// </summary>
        /// <param name="dt">绑定的总数据集</param>
        /// <param name="tnc">treeview节点集合</param>
        /// <param name="val">主节点id</param>
        public void BindTree(DataTable dt,TreeNodeCollection tnc,int val)
        {
            DataView dv = new DataView(dt);//将DataTable存到DataView中,以便于筛选数据
            TreeNode tn;
            string filter = (val == 0) ? "parentID=0" : string.Format("parentID={0}", val);//为DataView构建筛选条件
            dv.RowFilter = filter;//为DataView赋予筛选条件
            //遍历筛选后的结果集
            foreach (DataRowView drv in dv)
            {
                tn = new TreeNode();//实例化一个treeview节点
                tn.Value = drv["id"].ToString();//绑定节点value
                tn.Text = drv["Name"].ToString();//绑定节点显示text
                tnc.Add(tn);//将该节点加入到TreeNodeCollection(节点集合)中
                BindTree(dt, tn.ChildNodes, int.Parse(drv["id"].ToString()));//递归层层绑定treeview
            }
        }

运行效果:

.net  TreeView使用基础 - yes - 赵彦平的网络家园
0 0
原创粉丝点击