博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DropDownList中显示无限级树形结构
阅读量:6681 次
发布时间:2019-06-25

本文共 1934 字,大约阅读时间需要 6 分钟。

效果图:

数据库表:

DirID:目录的ID,ParentID:目录的父路径ID,Name:目录的名字

主要代码:

DropDownList中显示无限级树形结构 - kewangwu - kewangwu的博客
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()

你可能感兴趣的文章
1058. 选择题(20)
查看>>
回望2018,计划2019
查看>>
Andriod 第五课----图形界面
查看>>
基于sklearn的常用分类任务指标Python实现
查看>>
一些关于Hibernate延迟加载的误区
查看>>
设计模式之缺省适配模式
查看>>
qsort函数辅助函数compare函数的编写
查看>>
项目选题报告答辩总结模板
查看>>
最小费用最大流
查看>>
uva 10972 RevolC FaeLoN
查看>>
玩转Android之Drawable的使用
查看>>
C#中的单例模式
查看>>
全局变量
查看>>
迷茫的程序员
查看>>
android号码匹配位数修改
查看>>
基于 DirectX11 的 MMDViewer 02-创建一个窗口
查看>>
Repository 设计模式介绍
查看>>
mysql的下载与安装
查看>>
只是一个文件节点类为了项目的数据处理
查看>>
十七进制转换为十进制的C语言程序
查看>>