c#中树结构的显示

原创 2012年03月22日 14:52:31

1 以下根据一个表来做个小sample:

 假如表的字段有:id,classId,className,fatherId,flag

其中数据有:

1 101 书籍 0 0
2 101001 计算书 101 0
3 101002 英语 101 0
4 101003 物理 101 0
5 101004 高数1 101 0
6 101005 高数2 101 0
7 102 电脑 0 0
8 102001 联想电脑 102 0
9 102002 长城电脑 102 0
10 102003 tcl电脑 102 0
11 102004 ibm电脑 102 0
12 103 手机 0 0
13 103001 诺基亚 103 0
14 103002 三星 103 0
15 103003 oppl 103 0
16 103004 tcl 103 0

前台aspx页面上可以这样写:要先引入几个js文件:

<script language="javascript"  src="scripts/button/jquery-1.3.2.min.js" type="text/javascript"></script>
    <script language="javascript" src="scripts/button/button.js" type="text/javascript"></script>
    <script src="scripts/jsframework.js" type="text/javascript" language="javascript"></script>

<div style="float:left;width:140px;margin-right:5px;border:0px #ccc solid">
            <div class="ClassTitle">分类</div>
            <div class="ClassBD">
              <ul id="tree" class="tree" style="width:125px; height:600px;overflow:auto;">
                 <script language="javascript" type="text/javascript">  
                    var intTarget="IFrm0";
                    <%=LoadTree()%>                    
                </script>
              </ul>
          </div>

后台.cs文件中可以这样写:

  public string LoadTree()
    {
        string sqlstr = "SELECT fatherId,classId, className FROM typeInfo WHERE (ClassID Like '10%') ";
       
        DataTable dt = new DataTable();

       string conn=ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
       DataSet ds = sql.GetDateSet(sqlstr,conn);
        dt = ds.Tables[0];
        string nodes = "";
        string nodes1 = "";
        string fatherId = string.Empty;
        nodes1 += "var data = {};\r\ndata[\"-1_0\"] = \"text: 类型;url:Default.aspx?ClassID = -1\";\r\n";
        foreach (DataRow dr in dt.Rows)
        {
             string ClassID = dr["classId"].ToString();
            fatherId = dr["fatherId"].ToString();
            if (dr["fatherId"].ToString() == "0")
            {
                nodes1 += "data[\'" + dr["fatherId"].ToString() + "_" + dr["classId"].ToString() + "\'] = \'text:" + dr["className"].ToString() + ";url:Default.aspx?ClassID=" + ClassID + "\';\r\n";
                  }
            else
            {
                nodes1 += "data[\'" + dr["fatherId"].ToString() + "_" + dr["classId"].ToString() + "\'] = \'text:" + dr["className"].ToString() + ";url:Default.aspx?ClassID=" + ClassID + "\';\r\n";
}

        }
        nodes = nodes1 ;
        string TreeViews = "Tree" + fatherId;
        nodes += "Using(\"System.Web.UI.WebControls.MzTreeView\");\r\n";
        nodes += "var " + TreeViews + " = new MzTreeView();\r\n";
        nodes += TreeViews + ".dataSource = data;\r\n";
        nodes += TreeViews + ".setJsDataPath(\"csdn/community/treedata/\");\r\n";
        nodes += TreeViews + ".setXmlDataPath(\"csdn/community/treedata/\");\r\n";
         nodes += TreeViews + ".autoSort=false;\r\n";
        nodes += TreeViews + ".useCheckbox=false;\r\n";
        nodes += TreeViews + ".canOperate = true;\r\n";
        nodes += "document.write(" + TreeViews + ".render());\r\n";
        nodes += TreeViews + ".expandLevel(1);\r\n";
        return nodes;
       
    }

 

 public static DataSet GetDateSet(string StrSql, string Conn)
    {
        SqlConnection conn = new SqlConnection(Conn);
        SqlCommand cm = new SqlCommand();
        cm.Connection = conn;
        cm.CommandText = StrSql;
        cm.CommandTimeout = 30;
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = cm;
        DataSet ds = new DataSet();
        try
        {
            conn.Open();
            da.Fill(ds);
        }
        catch (Exception error)
        {
            sys.ErrorMsg(error.Message);
            ds = null;
        }
        finally
        {
            conn.Dispose();
            conn.Close();
        }
        return ds;
    }

 

运行出的效果类似于csdn论坛中的树控件,用这种方法加载树控件时速度比较快。

 

 

C#如何以树形结构来层级显示

  • 2010年01月27日 14:00
  • 30KB
  • 下载

c#如何实现从xml中加载树目录,并且显示完整的Text

谈到xml,相信有一定编程基础的童鞋们都比较清楚了。xml文件格式类似于嵌套的样式,这种独特的层次结构很容易使我们联想到目录树,因此这不禁让我们对两者之间产生一种牵线的想法。这不禁,使我们有这么一个问...
  • ztzi321
  • ztzi321
  • 2015年03月05日 08:35
  • 2377

Winform中如何实现下拉树效果(类似于ComboBox下拉时显示的是树状结构)

Winform中如何实现下拉树效果 简介:Winform中如何实现下拉树效果(类似于ComboBox下拉时显示的是树状结构),         如果是BS的WebForm就有很多解决方案了,Devex...
  • pengzhen8805
  • pengzhen8805
  • 2013年11月01日 19:31
  • 7347

C# 系统应用之TreeView控件显示树状磁盘文件目录及加载图标

在C#系统应用毕设U盘防御软件中需要实现文件不可恢复的删除,首先需要实现类似于资源管理器的界面,通过TreeView控件显示"我的电脑"所有磁盘文件树状目录并加载相应图标.显示结果如下图所示: 一...
  • xiao190128
  • xiao190128
  • 2015年09月16日 10:44
  • 6389

C#实现的组织结构显示

  • 2011年12月30日 23:18
  • 45KB
  • 下载

C#递归算法-遍历XML文件,以UL列表显示树形结构目录

最近,公司有个新项目-用WEB做一个财报阅读器供客户使用。项目经理用Gmail给组员下发需求文档,我一看,功能需求很详细,但UI设计却只有支言片语。 于是我回复询问下UI需求,得到的回复是:UI设计...
  • ruiqi317
  • ruiqi317
  • 2011年12月01日 23:29
  • 2421

数据结构(C#)--二叉查找树的先序,中序,后序的遍历问题以及最大值,最小值,插入,删除

// 学习小结  吴新强于2013年3月18日17:22:55 桂电 2057 实验室 using System; using System.Collections.Generic; using...
  • smart819819
  • smart819819
  • 2013年03月18日 17:21
  • 903

C#与数据结构--树论--红黑树(RED BLACK TREE)

C#与数据结构--树论--红黑树(RED BLACK TREE)   介绍 今天我们来介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,...
  • yeyang911
  • yeyang911
  • 2013年10月23日 16:50
  • 991

C#与数据结构--树论--平衡二叉树(AVL TREE)

来自 介绍 我们知道在二叉查找树中,如果插入元素的顺序接近有序,那么二叉查找树将退化为链表,从而导致二叉查找树的查找效率大为降低。如何使得二叉查找树无论在什么样情况下都能使它的形态最大限度地接近满...
  • vincent2610
  • vincent2610
  • 2014年07月30日 14:45
  • 465

C#与数据结构--树论--平衡二叉树(AVL Tree)

介绍 我们知道在二叉查找树中,如果插入元素的顺序接近有序,那么二叉查找树将退化为链表,从而导致二叉查找树的查找效率大为降低。如何使得二叉查找树无论在什么样情况下都能使它的形态最大限度地接近满二叉树以保...
  • Chinamming
  • Chinamming
  • 2013年11月23日 00:13
  • 1009
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#中树结构的显示
举报原因:
原因补充:

(最多只允许输入30个字)