欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# TreeView无限目录树实现方法

程序员文章站 2023-11-08 15:02:10
本文实例讲述了c# treeview无限目录树实现方法。分享给大家供大家参考,具体如下: #region 绑定客户树 protected void bindtr...

本文实例讲述了c# treeview无限目录树实现方法。分享给大家供大家参考,具体如下:

#region 绑定客户树
protected void bindtreeview()
{
  treeview1.nodes.clear();
  string userid = session["userid"].tostring();
  string sqlwr = new sy_adminuser().getuseridlistbyloginuser(userid, "customerservice", false);
  datatable dt = maticsoft.dbutility.dbhelperora.query("select parentid,customerid,customershort,customerservice from cu_customer where isdelete='0' " + sqlwr + " order by customershort ").tables[0];
  //定义临时树节点
  treenode tmpnd;
  //特殊处理
  foreach (datarow dr in dt.rows)
  {
    datarow[] drs = dt.select("customerid='" + dr["parentid"] + "'");
    if (drs.length == 0) //无上级节点
    {
      dr["parentid"] = "0";
    }
  }
  dt.acceptchanges();
  //从datatable中得到所有父节点为null的datarow形成的数组
  datarow[] rows = dt.select("parentid='0'");
  //遍历根节点数组
  foreach (datarow row in rows)
  {
    tmpnd = new treenode();
    //给根节点赋值
    tmpnd.value = row["customerid"].tostring();
    tmpnd.text = row["customershort"].tostring();
    tmpnd.expanded = true;
    //将节点加入到树中
    treeview1.nodes.add(tmpnd);
    addtree(dt, treeview1, tmpnd, row["customerid"].tostring());
  }
}
public void addtree(datatable dt, treeview tv, treenode pnode, string customerid)
{
  datarow[] rows = dt.select("parentid='" + customerid + "'");
  treenode tmpnd;
  foreach (datarow row in rows)
  {
    tmpnd = new treenode();
    //给根节点赋值
    tmpnd.value = row["customerid"].tostring();
    tmpnd.text = row["customershort"].tostring();
    tmpnd.expanded = true;
    pnode.childnodes.add(tmpnd);
    //将节点加入到树中
    //treeview1.nodes.add(pnode);
    addtree(dt, treeview1, tmpnd, row["customerid"].tostring());
  }
}
#endregion

更多关于c#相关内容感兴趣的读者可查看本站专题:《c#程序设计之线程使用技巧总结》、《c#操作excel技巧总结》、《c#中xml文件操作技巧汇总》、《c#常见控件用法教程》、《winform控件用法总结》、《c#数据结构与算法教程》、《c#数组操作技巧总结》及《c#面向对象程序设计入门教程

希望本文所述对大家c#程序设计有所帮助。