一个可以添加无限结点的树(asp.net版)

原创 2006年06月01日 10:03:00

一个可以添加无限结点的树(asp.net版)

1、递归函数

//  '递归遍历自建目录树=============================================================================

  private void ShowDir(string sZml,string sIndex)
  {
   System.Data.SqlClient.SqlConnection sqlCon=new System.Data.SqlClient.SqlConnection(connectionString);
   string sqlStr="select * from mltable where mlzml=N'"+ sZml +"'";
   System.Data.SqlClient.SqlDataAdapter sqlAda=new System.Data.SqlClient.SqlDataAdapter(sqlStr,sqlCon);
   System.Data.DataTable Dt=new DataTable();
   sqlAda.Fill(Dt);
   Microsoft.Web.UI.WebControls.TreeNode Node1;
   string sIndex0;
   string sIndex2;
   int theId;

   int sIndex1=0;//记录树的最后一位值
   foreach(System.Data.DataRow DtDataRow in Dt.Rows)
   {
    theId=Convert.ToInt32(DtDataRow["mlid"]);
    Node1=new Microsoft.Web.UI.WebControls.TreeNode();
    Node1.Text=DtDataRow["mlmc"].ToString();
    Node1.ImageUrl="images/trees/folder.gif";
    Node1.ExpandedImageUrl="images/trees/folderopen.gif";
    Node1.Expanded=false;
    Node1.NavigateUrl="Admin_Tree_Show.aspx?theid=" + theId +"&sIndex="+ sIndex+"."+sIndex1.ToString();
    Node1.ID="";
    Node1.Target="main";
    if(sIndex=="")
    {
     sIndex2=TreeView1.Nodes.IndexOf(Node1).ToString();
     sIndex0=sIndex2;
    
    }
    else
    {

     Microsoft.Web.UI.WebControls.TreeNode pNode=TreeView1.GetNodeFromIndex(sIndex);
     pNode.Nodes.Add(Node1);
     sIndex2=pNode.Nodes.IndexOf(Node1).ToString();
     sIndex0=sIndex + "." + sIndex2;
     sIndex1++;//记录当前树下叶子的个数,即当前叶子的号
    }
    ShowDir(DtDataRow["mlid"].ToString(),sIndex0);
   
   
   }
   sqlCon.Close();

  }


//================================================================================================
2、绑定目录树

//  绑定目录树==================================================================
  private void BindTree()
  {
  
  
   //    TreeView1.SelectExpands=true;

   Microsoft.Web.UI.WebControls.TreeNode Node1=new Microsoft.Web.UI.WebControls.TreeNode();
   Node1.Text="管理中心";
   Node1.ImageUrl="images/trees/folder.gif";
   Node1.ExpandedImageUrl="images/trees/folderopen.gif";
   Node1.ID="";
   Node1.NavigateUrl="Admin_Glzx.aspx";
   Node1.Target="main";
   Node1.Expanded=true;
   TreeView1.Nodes.Add(Node1);

   //公司管理========================================================
   Microsoft.Web.UI.WebControls.TreeNode Node2=new Microsoft.Web.UI.WebControls.TreeNode();
   Node2.Text="公司管理";
   Node2.ImageUrl="images/trees/folder.gif";
   Node2.ExpandedImageUrl="images/trees/folderopen.gif";
   Node2.ID="";
   Node2.NavigateUrl="Admin_Gsgl.aspx?sIndex=0.0";
   Node2.Target="main";
   Node2.Expanded=false;
   Node1.Nodes.Add(Node2);

   Microsoft.Web.UI.WebControls.TreeNode Node21=new Microsoft.Web.UI.WebControls.TreeNode();
   Node21.Text="公司简介";
   Node21.ImageUrl="images/trees/folder.gif";
   Node21.ExpandedImageUrl="images/trees/folderopen.gif";
   Node21.ID="";
   Node21.NavigateUrl="Admin_GsJj.aspx?sIndex=0.0.0";
   Node21.Target="main";
   Node21.Expanded=true;
   Node2.Nodes.Add(Node21);

//   Microsoft.Web.UI.WebControls.TreeNode Node22=new Microsoft.Web.UI.WebControls.TreeNode();
//   Node22.Text="联系方式";
//   Node22.ImageUrl="images/trees/folder.gif";
//   Node22.ExpandedImageUrl="images/trees/folderopen.gif";
//   Node22.ID="";
//   Node22.NavigateUrl="Admin_Detail.htm";
//   Node22.Target="main";
//   Node22.Expanded=true;
//   Node2.Nodes.Add(Node22);
//

   Microsoft.Web.UI.WebControls.TreeNode Node23=new Microsoft.Web.UI.WebControls.TreeNode();
   Node23.Text="公司新闻";
   Node23.ImageUrl="images/trees/folder.gif";
   Node23.ExpandedImageUrl="images/trees/folderopen.gif";
   Node23.ID="";
   Node23.NavigateUrl="Admin_GsXw.aspx?sIndex=0.0.1";
   Node23.Target="main";
   Node23.Expanded=true;
   Node2.Nodes.Add(Node23);

   Microsoft.Web.UI.WebControls.TreeNode Node24=new Microsoft.Web.UI.WebControls.TreeNode();
   Node24.Text="公司公告";
   Node24.ImageUrl="images/trees/folder.gif";
   Node24.ExpandedImageUrl="images/trees/folderopen.gif";
   Node24.ID="";
   Node24.NavigateUrl="Admin_GsGg.aspx?sIndex=0.0.2";
   Node24.Target="main";
   Node24.Expanded=true;
   Node2.Nodes.Add(Node24);

   Microsoft.Web.UI.WebControls.TreeNode Node25=new Microsoft.Web.UI.WebControls.TreeNode();
   Node25.Text="公司荣誉";
   Node25.ImageUrl="images/trees/folder.gif";
   Node25.ExpandedImageUrl="images/trees/folderopen.gif";
   Node25.ID="";
   Node25.NavigateUrl="Admin_GsRy.aspx?sIndex=0.0.3";
   Node25.Target="main";
   Node25.Expanded=true;
   Node2.Nodes.Add(Node25);

   Microsoft.Web.UI.WebControls.TreeNode Node26=new Microsoft.Web.UI.WebControls.TreeNode();
   Node26.Text="营销网络";
   Node26.ImageUrl="images/trees/folder.gif";
   Node26.ExpandedImageUrl="images/trees/folderopen.gif";
   Node26.ID="";
   Node26.NavigateUrl="Admin_GsYx.aspx?sIndex=0.0.4";
   Node26.Target="main";
   Node26.Expanded=true;
   Node2.Nodes.Add(Node26);


   Microsoft.Web.UI.WebControls.TreeNode Node27=new Microsoft.Web.UI.WebControls.TreeNode();
   Node27.Text="公司形象";
   Node27.ImageUrl="images/trees/folder.gif";
   Node27.ExpandedImageUrl="images/trees/folderopen.gif";
   Node27.ID="";
   Node27.NavigateUrl="Admin_GsXx.aspx?sIndex=0.0.5";
   Node27.Target="main";
   Node27.Expanded=true;
   Node2.Nodes.Add(Node27);

   Microsoft.Web.UI.WebControls.TreeNode Node28=new Microsoft.Web.UI.WebControls.TreeNode();
   Node28.Text="下载专区";
   Node28.ImageUrl="images/trees/folder.gif";
   Node28.ExpandedImageUrl="images/trees/folderopen.gif";
   Node28.ID="";
   Node28.NavigateUrl="Admin_Xzzq.aspx?sIndex=0.0.6";
   Node28.Target="main";
   Node28.Expanded=true;
   Node2.Nodes.Add(Node28);
   //==================================================================================================

   //产品管理====================================================================================
   
   string sIndex1;
   string sIndex2;
   Microsoft.Web.UI.WebControls.TreeNode Node3=new Microsoft.Web.UI.WebControls.TreeNode();
   Node3.Text="产品管理";
   Node3.ImageUrl="images/trees/folder.gif";
   Node3.ExpandedImageUrl="images/trees/folderopen.gif";
   Node3.ID="";
   Node3.NavigateUrl="Admin_Tree_Show.aspx?theid=0&sIndex=0.1";
   Node3.Target="main";
   Node3.Expanded=true;
   Node1.Nodes.Add(Node3);


   sIndex1=TreeView1.Nodes.IndexOf(Node1).ToString();//根目录
   sIndex2=Node1.Nodes.IndexOf(Node3).ToString();//产品管理目录


   ShowDir("0",sIndex1+"."+sIndex2);
    
  
  }


//=============================================================================

3、数据表格式

3 mlid int 4 0
0 mlmc nvarchar 50 1
0 mlzml nvarchar 50 1
0 mllx int 4 1
0 thedate datetime 8 1

淘宝笔试题:一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL

题目:对于一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL;给出程序实现,并分析时间复杂度和空间复杂度。...
  • fangjian1204
  • fangjian1204
  • 2014年08月06日 16:49
  • 1664

【转载】【权限控制】角色访问动态生成用户权限菜单树

【转载】【权限控制】角色访问动态生成用户权限菜单树             博客分类: 通用组件设计   转载: http://www.comprg.com.cn/pos...
  • chpswg
  • chpswg
  • 2013年12月12日 14:33
  • 29098

无限极二叉树,数据结构,经典算法

利用多叉树实现Ext JS中的无限级树形菜单(一种构建多级有序树形结构JSON的方法)                                                      ...
  • bing8181413
  • bing8181413
  • 2013年09月03日 14:33
  • 1673

黑马程序员之ASP.NET学习笔记:TREEVIEW中动态增加结点

在asp.net 2.0中,要动态从数据库中取出内容,动态增加结点,其实不难,比如以SQL SERVER 2000的PUBS数据库为例子,要以树型列表方式,取出作者,做为根结点,然后取出每位作者写过什...
  • xutingzhou
  • xutingzhou
  • 2012年10月29日 18:56
  • 366

asp.net(C#)html无限分类树 可新增 删除 修改

商品分类 using System; using System...
  • smartsmile2012
  • smartsmile2012
  • 2013年11月29日 12:37
  • 4235

asp.net 利用TreeView控件动态生成无限级树.rar

  • 2008年03月14日 23:42
  • 2KB
  • 下载

ASP.NET AJAX无限级JS树形菜单

ASP.NET AJAX无限级JS树形菜单
  • sqlove
  • sqlove
  • 2011年06月01日 23:24
  • 837

asp.net sql无限极分类实例程序

asp.net sql无限极分类实例程序   数据库结构   代码如下   create table category   (   id                  int,   c...
  • u014093935
  • u014093935
  • 2014年03月15日 09:07
  • 396

asp.net 无限级分类

下图中红色箭头是父类 而且属于根目录级别。   下面个字段为:ID  父ID  类型名称  深度  排序   前面3个字段没有什么可解释的,做过无限级分类设计的人都应该清楚   而第5个字段...
  • u010712693
  • u010712693
  • 2014年03月11日 19:57
  • 932

asp.net使用Ajax+jquery+定时器,在IE(8--9)中导致内存无限增长,内存泄露

jquery+ajax+定时器使访问网站的电脑内存一直增长,导致内存溢出,并且网站会出现无法响应现象的一些解决心得。...
  • sui_s
  • sui_s
  • 2016年04月26日 14:03
  • 853
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个可以添加无限结点的树(asp.net版)
举报原因:
原因补充:

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