效果图:

数据库表:

DirID:目录的ID,ParentID:目录的父路径ID,Name:目录的名字
主要代码:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class DropdownlistTree : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable datatable = this.GetDataTable();
DataRow[] row = datatable.Select("ParentID='-1'");
//添加根目录
ListItem li = new ListItem(row[0]["Name"].ToString());
DropDownList1.Items.Add(li);
addOtherDll("", Convert.ToInt32(row[0]["DirID"]), datatable,1);
}
}
/** <summary>
/// 添加其他节点
/// </summary>
/// <param name="Pading">空格</param>
/// <param name="DirId">父路径ID</param>
/// <param name="datatable">返回的datatable</param>
/// <param name="deep">树形的深度</param>
private void addOtherDll(string Pading, int DirId, DataTable datatable,int deep)
{
DataRow[] rowlist=datatable.Select("ParentID='"+DirId+"'");
foreach (DataRow row in rowlist)
{
string strPading = "";
for (int j = 0; j < deep; j++)
{
strPading += " "; //用全角的空格
}
//添加节点
ListItem li = new ListItem(strPading + "|--" + row["Name"].ToString());
DropDownList1.Items.Add(li);
//递归调用addOtherDll函数,在函数中把deep加1
addOtherDll(strPading,Convert.ToInt32(row["DirID"]), datatable,deep+1);
}
}
/** <summary>
/// 从数据库中读取数据返回datatable
/// </summary>
/// <returns></returns>
private DataTable GetDataTable()
{
SqlConnection conn = newSqlConnection(ConfigurationManager.ConnectionStrings["Personal"].ConnectionString);
SqlDataAdapter adp = new SqlDataAdapter("select * from Test", conn);
DataSet datset = new DataSet();
conn.Open();
adp.Fill(datset, "Test");
return datset.Tables[0];
}
}

当然,当读取DropDownList时若要去除"|--"和空格可以调用addOtherDll.SelectValue().Replace("|--","").Trim()

DropDownList中显示无限级树形结构相关推荐

  1. 多叉树结合JavaScript树形组件实现无限级树形结构(一种构建多级有序树形结构JSON(或XML)数据源的方法)

    一.问题研究的背景和意义 在Web应用程序开发领域,基于Ajax技术的JavaScript树形组件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项.目前市场上常见的JavaScript框 ...

  2. html分级显示的下拉列表,javascript实现在下拉列表中显示多级树形菜单的方法

    本文实例讲述了javascript实现在下拉列表中显示多级树形菜单的方法.分享给大家供大家参考.具体如下: 这里演示在下拉列表框中显示分级的菜单,在很多网站都可以看到的效果,很实用,下拉列表框中的选项 ...

  3. eclipse-中如何显示工程树形结构

    打开eclipse,左边工程会有一个倒三角,点击一下,选择package presentation ,然后选择hierarchical, 就是树形结构了.如下图: eclipse-中如何显示工程树形结 ...

  4. Intellij IDEA展示类中的方法树形结构

    在intellij Idea中叫Structure(结构体),如下图: 也可以直接Alt+F7快捷键,这样默认会把Structure显示在屏幕下方,如下图操作就可以移动到右侧. 效果如下:

  5. html分级显示的下拉列表,在下拉列表中显示多级树形菜单

    在下拉列表框中显示分级的菜单,在很多网站都可以看到的效果,很实用,下拉列表框中的选项是利用JS控制输出,如果你有更好的办法不用JS来显示,那最好了,因为像这种菜单用JS来实现,多多少少有点麻烦 在下拉 ...

  6. V3.0element中table表格树形结构与懒加载通过接口获取展开行数据,并实现自动展开某行以及展开行数据删除,编辑,新增,展开行某些列不显示等功能

    1.获取列表后自动展开第一行,以及列表序号的显示 需要展开哪行,就赋值 expandsId 某行id 值就行了 2.展开某行时通过接口获取子行数据,一般需求是通过父行的id,来获取他的子行数据--lo ...

  7. Linux下C编程-----IO/文件操作 模拟linux ls程序显示文件系统树形结构(2)

    Linux下的IO/文件操作练习,知识虽然简单 但是往往基础容易被忽略,偶尔的练习是有必要的. 练习printf /****************************************** ...

  8. Excel表格中建立树形结构

    Excel表格中建立树形结构 2010-04-05 17:56:37|  分类: 开发笔记 |字号 订阅 有时在excel表格中需要建立树形结构,如下图所示. 对动物.植物进行分类. 动物.植物类中分 ...

  9. [SQL Server]树形结构的创建

    对于SQL Server来说,构建显示一个树形结构不是一件容易的事情,逻辑构造能力不是它的强项.不过也不是说它没有能力干这个事情,只要换一种思维方式就可以理解它的工作原理. 例如,现在有一张表的内容如 ...

最新文章

  1. 【OpenGL】向Shader中传递数据
  2. 028_jQuery数据
  3. c语言程序设计棋盘不对齐,经典c语言程序设计例(55页)-原创力文档
  4. plsql(轻量版)_游标的使用2
  5. bouncycastle NoSuchFieldError:xxx 版本冲突
  6. 入职后,如何判断公司值不值得长期待下去?
  7. 第4课 列朋波骨《小学生C++趣味编程》
  8. 《UNIX编程环境》——5.6 zap:使用名字终止进程
  9. Cacti监控Memcached时Count Stats和Memory/Structures没数据
  10. 7个步骤建立可用的机器学习模型
  11. 常见的图像分割方法有以下几种
  12. ERD Commander 2005 Boot CD 剖析及汉化试验
  13. 【ExcelPlanet】SUMPRODUCT函数用法:单条件、多条件、模糊条件求和与计数
  14. Android,提供视频开发测试地址(视频下载和视频播放所用)
  15. 【虾仁猪心!!】--1
  16. Linux操作系统安装及服务控制
  17. Python可以自学吗?
  18. 适应iphone5 屏幕拉长的办法
  19. 驾考宝典java_驾考宝典java
  20. 家里宽带628连不上_宽带错误代码628是什么意思?

热门文章

  1. C语言二进制转换为八进制(附完整源码)
  2. C语言多维数组本质技术推演
  3. 经典C语言程序100例之八四
  4. WdatePicker()时间控制方式(转载+原创)
  5. html算术计算,js实现计算器 提供算术表达式求值
  6. php是范例,php基础范例
  7. python类的继承与多态_python类的继承和多态
  8. golang select default continue_Go并发(四):select篇
  9. Ubuntu上用caffe的SSD方法训练Pascal VOC数据集
  10. springcloud(十一):服务网关Zuul高级篇