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#之四十一 在Winform中从外部拖动节点到树形结构

在进行拖放操作之前,必须要对进行拖放操作的组件的"AllowDrop"属性值设定为"True",因为此属性是确定组件是否可以进行拖放操作的。 我们会用到三种事件:"ItemDrag"、"...

C#实现的组织结构显示

  • 2011-12-30 23:18
  • 45KB
  • 下载

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

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

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

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

C#数据结构-树 data Structure Tree

树(Tree)是n(n>=0)个相同类型的数据元素的有限集合。树中的数据元素叫结点(Node)。n=0的树称为空树(Empty Tree);对于n>0的任意非空树T有: 1.有且只有一个特殊的结...

C# 数据结构 之 二叉树

C# 数据结构 之 二叉树 二叉树的定义 二叉树(Binary Tree)是n(n>=0)个有限元素的集合,该集合或者为空,或者由一个称为根(root)的元素及两个不相交的,被称为左子树和...

c#-二叉树数据结构及算法

Trees are a very common data structure in computer science. A tree is a nonlinear data structure th...

《数据结构与算法C#语言描述》笔记12_二叉树和二叉查找树

十二.二叉树和二叉查找树 树的定义 树,由边连接的一些列节点。树是一种非线性的数据结构。 根节点,树上最高的节点。 父节点,某个节点的上层节点。 子节点,某个节点的下层节点。 叶子,没有任...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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