C#.net实现动态绑定TreeView

本文介绍了一种使用ASP.NET中的TreeView控件进行数据绑定的方法。通过从数据库中获取数据并填充到数据集中,再利用这些数据动态创建TreeView的节点结构,实现了数据驱动的导航菜单。文章详细展示了如何递归地构建树形结构,包括如何设置节点的属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文来自:奥迪男 http://blog.sina.com.cn/s/blog_502a32050100dk8u.html

private DataSetbind()//创建函数获取数据库中TreeViewTable表中的数据到数据集ds中,然后返回数据集中的数据

 
   {
       //创建连接数据库对象,并读取web.config文件中连接数据库的字符串
       SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings ["con"].ConnectionString );
       //打开数据库
       con.Open();
       //定义查询数据库的字符串
       string cmdtext = "select * from TreeViewTable";
       //创建数据适配器
       SqlDataAdapter sda = new SqlDataAdapter(cmdtext, con);
       //创建数据集
       DataSet ds = new DataSet();
       //填充数据集合
       sda.Fill(ds);
       //返回数据机中的数据
       return ds;
    }
    private voidchildnode(TreeNode parentNode,string seldate)
    {
       //调用bind()函数获取数据,并将数据保存到datatable1数据表中
       DataTable datatable1 = bind().Tables[0];
       //选择数据
       DataRow[] rowList = datatable1.Select("parentid='"+parentNode.Value+"'");
       //Response.Write(parentNode.Value);
       foreach (DataRow row in rowList)
       {
           //创建新节点
           TreeNode node = new TreeNode();
           //设置节点属性
           node .Text =row["nodename"].ToString ();
           node.Value = row["nodeid"].ToString();
           node.NavigateUrl = row["url"].ToString();
           //设定是否展开数据
           node.Expanded = false ;//设定节点是否展开
           //添加子节点
           parentNode.ChildNodes.Add(node);
           //递归调用,创建其他节点(如果没有此项的话则只能显示到第二层)
           //Response.Write(node.Text);
           childnode(node ,seldate );
          
       }
    }
    public voidbandtree(string seldate)
    {
       //调用bind()函数获取数据
       DataTable datatable = bind().Tables[0];
       //清空树的所有节点
       TreeView1.Nodes.Clear();
       //创建一个数据行
       DataRow[] rowlist = datatable.Select("parentid='0'");
       //判断其中的数据是否为空
       if (rowlist.Length <= 0)
       {
           return;
       }
       //创建根节点
       TreeNode rootNode = new TreeNode();
       //设置根节点属性
       rootNode.Text = rowlist[0]["nodename"].ToString();
       rootNode .Value =rowlist [0]["nodeid"].ToString();//设置根节点的key值
       rootNode.Expanded = true  ;//树的根节点展开
       TreeView1.Nodes.Add(rootNode );
      //调用childnode()函数,创建其他子节点
       childnode(rootNode, seldate );
    }
    protectedvoid Page_Load(object sender, EventArgs e)
    {
       if (!Page.IsPostBack)
       {
           bandtree("0");
       }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值