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

本文实例讲述了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#程序设计有所帮助。

(0)

相关推荐

  • C#求解哈夫曼树,实例代码

    复制代码 代码如下: class HuffmanTree    {        private Node[] data;        public int LeafNum { get; set; }        public Node this[int index]        {            get { return data[index]; }            set { data[index] = value; }        }        public Hu

  • ASP.NET C#生成下拉列表树实现代码

    效果图: 代码: 复制代码 代码如下: using System.Data; using System.Web.UI.WebControls; /// <summary> /// 根据DataTable生成下拉列表树 /// </summary> public class DropDownListHelp { private string gridline; private DataTable dt; public DropDownListHelp() { // //TODO: 在

  • C#通过KD树进行距离最近点的查找

    本文首先介绍Kd-Tree的构造方法,然后介绍Kd-Tree的搜索流程及代码实现,最后给出本人利用C#语言实现的二维KD树代码.这也是我自己动手实现的第一个树形的数据结构.理解上难免会有偏差,敬请各位多多斧正. 1. KD树介绍 Kd-Tree(KD树),即K-dimensional tree,是一种高维索引树形数据结构,常用于在大规模的高维数据空间进行最邻近查找和近似最邻近查找.我实现的KD树是二维的Kd - tree.目的是在点集中寻找最近点.参考资料是Kd-Tree的百度百科.并且根据百度

  • 关于c#二叉树的实现

    本篇纯属娱乐,源于整理代码,发现还曾实现过遍历二叉树. 虽然.NET/C#中的各种集合类已经实现了最优的排序设计,但了解基本的算法实现有助于软件开发中的各种权衡和选择.比如,如果你实现过B+树排序和查找,并将树节点序列化至二进制文件块,则你应该已经了解了各种数据库索引的基本设计. 什么是二叉树?http://en.wikipedia.org/wiki/Binary_tree 二叉树节点类定义 复制代码 代码如下: View Code    /// <summary>   /// 二叉树节点  

  • C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法

    本文实例讲述了C#使用前序遍历.中序遍历和后序遍历打印二叉树的方法.分享给大家供大家参考.具体实现方法如下: public class BinaryTreeNode { public BinaryTreeNode Left { get; set; } public BinaryTreeNode Right { get; set; } public int Data { get; set; } public BinaryTreeNode(int data) { this.Data = data;

  • 一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)

    复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.Linq; using System.Xml; using System.Xml.Linq; namespace WebApplication3 { public

  • C#之Expression表达式树实例

    本文实例讲述了C#之Expression表达式树,分享给大家供大家参考.具体实现方法如下: 表达式树表示树状数据结构的代码,树状结构中的每个节点都是一个表达式,例如一个方法调用或类似 x < y 的二元运算 1.利用 Lambda 表达式创建表达式树 复制代码 代码如下: Expression<Func<int, int, int, int>> expr = (x, y, z) => (x + y) / z; 2.编译表达式树,该方法将表达式树表示的代码编译成一个可执行

  • C#实现获取系统目录并以Tree树叉显示的方法

    本文讲述C#获取Windows系统目录,如何目录遍历以及将信息捆绑在TreeView中显示出来的实现方法,具体实现代码如下: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace 获取系统目录 { public class

  • c#反射表达式树模糊搜索示例

    复制代码 代码如下: public static Expression<Func<T, bool>> GetSearchExpression<T>(string SearchString)        {            Expression<Func<T, bool>> filter = null; if (string.IsNullOrEmpty(SearchString)) return null;            var l

  • C# 递归查找树状目录实现方法

    1.递归查找树状目录 复制代码 代码如下: public partial class Form1 : Form    {        string path = @"F:\学习文件";//递归查找树状目录        public Form1()        {递归查找树状目录            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e) 

随机推荐