设为首页
加入收藏
联系我们
首页 基础教程 技术文档 实例分析 数 据 库 疑难杂症 ASP.NET 七夕许愿树 技术论坛
最新文章
  .NET上传图片加文字…
 在vs.net bate…
 C#中利用正则表达式实现…
 Visual C#的SQ…
 关于使用存储过程创建分页
 通用分页显示查询存储过程
 大数据量的分页
 什么是web.confi…
 ASP.NET 配置文件…
 对“三层结构”的深入理解…
 多个关键字的查询问题
 VB和C# 语法对比图 …
 C#基础全接触
 用C#压缩和修复Acce…
 C#中的类型相等与恒等(…
推荐文章
 关于C#中的REF和黓认…
 读书笔记c#高级编程 委…
 【算法】C#快速排序类
 Visual C#的SQ…
 C#中调用API
 Infragistics…
 C#接口转换
 C#读取设备信息
 用.net操作word
 C# MessageBo…
 Visual C#中的数…
 雅虎公司C#笔试题,看看…
 C#.NET使用NHib…
 .net学习之运算符重载…
 Visual C# 3.…
热门文章
 ADO.Net与ADO在…
 开发ASP.NET下的M…
 用C#+XMI技术进行U…
 什么是虚拟机?
 C#基础全接触
 C#中利用正则表达式实现…
 雅虎公司C#笔试题,看看…
 用Visual C# 2…
 C#学习第一天
 C#语言初级入门(1)
 VB和C# 语法对比图 …
 远程重启计算机(C#)
 什么是B/S三层?
 Visual C#的SQ…
 Visual C#常用函…
Asp.net DropDownList 无限级分级
阅读正文 文字大小:增大 减小  文字行距:增大 减小   双击自动滚屏
本文由中国C#技术学习中心整理  如果你对本文有不明之处请到技术论坛讨论!

数据库:SqlServer2000
:tree
表结构


测试数据


算法:使用递归实现

======================================

asp.net 代码

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace AspNetTest.Common
{
 /// <summary>
 /// tree 的摘要说明。
 /// </summary>

 public class tree : System.Web.UI.Page
 {


  private DataTable dtPowerTree = new DataTable();
  private DataTable dt=new DataTable();
  protected System.Web.UI.WebControls.DropDownList DropDownList1;
  protected System.Web.UI.WebControls.TextBox TextBox1;
  const string tablename = "tree";
  protected System.Web.UI.WebControls.DropDownList DropDownList2;
  private string strText;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   if(!Page.IsPostBack)
   {
    FillTreeDataTable();
    blTreeDataTable(0);
    dtPowerTree.Clear();   

   }
         
   // 在此处放置用户代码以初始化页面
  }
  private void FillTreeDataTable()
  {
   string ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
   SqlConnection conn = new SqlConnection(ConnectionString);
   SqlDataAdapter da = new SqlDataAdapter("select Id,PowerName,Layer,ParentId from " + tablename, conn);
   da.Fill(dtPowerTree);
  }
  private void blTreeDataTable(int _ParentId)
  {
   string filter = "ParentId=" + _ParentId;
   string sort = "Id ASC";
   DataRow[] drs = dtPowerTree.Select(filter, sort);
   for(int i=0; i<drs.Length; i++)
   {
    if(Convert.ToInt32(drs[i][3]) == _ParentId)
    {
     int Id = Convert.ToInt32(drs[i][0]);
     string PowerName = drs[i][1].ToString();
     int Layer = Convert.ToInt32(drs[i][2]);

     for(int n=1;n<=Layer; n++)
     {
      strText +=  HttpUtility.HtmlDecode("&nbsp;&nbsp;");
      
     }

     if(_ParentId!=0)
     {

 

      DropDownList1.Items.Add(new ListItem(strText+"┣"+PowerName,Id.ToString()));
      strText="";
     }
     else
     {

      DropDownList1.Items.Add(new ListItem(PowerName,Id.ToString()));
     }

     
  
     blTreeDataTable(Id);
    }
   }
  }

 


  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedIndexChanged);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion


 }
}



本文由中国C#技术学习中心整理  如果你对本文有不明之处请到技术论坛讨论!

中国C#技术交流QQ群:6337034  10976424  9383681  35248582  35248645
版权所有:中国C#技术学习中心 Copyright © 20010-20012
建议浏览分辨率使用:1024*768分辨率
粤ICP备05002251号