手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >ASP.NET C#生成下拉列表树实现代码
ASP.NET C#生成下拉列表树实现代码
摘要:效果图:代码:复制代码代码如下:usingSystem.Data;usingSystem.Web.UI.WebControls;//////...

效果图:

ASP.NET C#生成下拉列表树实现代码1

代码:

复制代码 代码如下:

using System.Data;

using System.Web.UI.WebControls;

/// <summary>

/// 根据DataTable生成下拉列表树

/// </summary>

public class DropDownListHelp

{

private string gridline;

private DataTable dt;

public DropDownListHelp()

{

//

//TODO: 在此处添加构造函数逻辑

//

}

/// <summary>

/// 根据Datatable生成树形下拉菜单

/// </summary>

/// <param name="datatable"></param>

/// <param name="parentKeyField">上级节点关键字段</param>

/// <param name="parentKey">上级节点值</param>

/// <param name="keyField">本节点关键字段</param>

/// <param name="sortString">排序字符串</param>

/// <param name="ddl">DownList</param>

public void createDropDownTree(DataTable datatable, string parentKeyField, string parentKey, string keyField, string textField, string sortString, DropDownList ddl)

{

dt = datatable;

ddl.Items.Add(new ListItem("", ""));

addChildItems(parentKeyField, parentKey, keyField, textField, sortString, ddl);

}

/// <summary>

/// 递归生成树节点

/// </summary>

/// <param name="parentKeyField">上级节点关键字段</param>

/// <param name="parentKey">上级节点值</param>

/// <param name="keyField">本节点关键字段</param>

/// <param name="sortString">排序字符串</param>

/// <param name="ddl">DownList控件</param>

/// <returns></returns>

private void addChildItems(string parentKeyField, string parentKey, string keyField, string textField, string sortString, DropDownList ddl)

{

DataView dv = new DataView(dt, parentKeyField + "='" + parentKey + "'", sortString, DataViewRowState.CurrentRows);

int a = dv.Count;

if (dv.Count == 0)

{

return;

}

for (int i = 0; i < a; i++)

{

gridline = "";

dv.RowFilter = parentKeyField + "='" + parentKey + "'";

dv.Sort = sortString;

getTreeLine(parentKeyField, dv[i][parentKeyField].ToString(), keyField, dv[i][keyField].ToString(), sortString);

dv.RowFilter = parentKeyField + "='" + parentKey + "'";

dv.Sort = sortString;

ddl.Items.Add(new ListItem(gridline + (i == a - 1 ? "┗" : "┣") + dv[i][textField].ToString(), dv[i][keyField].ToString()));

addChildItems(parentKeyField, dv[i][keyField].ToString(), keyField, textField, sortString, ddl);

}

dv.Dispose();

}

/// <summary>

/// 回溯生成树的连接线

/// </summary>

/// <param name="parentKeyField">上级节点关键字段</param>

/// <param name="parentKey">上级节点值</param>

/// <param name="keyField">本节点关键字段</param>

/// <param name="nodeKey">本节点值</param>

/// <param name="sortString">排序字符串</param>

/// <returns></returns>

private void getTreeLine(string parentKeyField, string parentKey, string keyField, string nodeKey, string sortString)

{

//选择父层节点

DataView dv = new DataView(dt, keyField + "='" + parentKey + "'", sortString, DataViewRowState.CurrentRows);

if (dv.Count > 0)

{

//选择父节点同级节点

dv.RowFilter = parentKeyField + "='" + dv[0][parentKeyField].ToString() + "'";

dv.Sort = sortString;

for (int j = 0; j < dv.Count; j++)

{

if (dv[j][keyField].ToString() == parentKey)

{

if (j == dv.Count - 1)

{

gridline = "" + gridline;

}

else

{

gridline = "┃" + gridline;

}

}

}

getTreeLine(parentKeyField, dv[0][parentKeyField].ToString(), keyField, dv[0][keyField].ToString(), sortString);

}

dv.Dispose();

}

}

调用:

复制代码 代码如下:

DropDownListHelp ddlHelper = new DropDownListHelp();

ddlHelper.createDropDownTree(dt, "parentID", "1", "ID","Text", "Text asc", DropDownList1);

【ASP.NET C#生成下拉列表树实现代码】相关文章:

C#默认以管理员身份运行程序实现代码

ASP.NET 导出到Excel时保留换行的代码

ASP.net 生成缩略图的实例源代码

ASP.NET 运行.bat文件的实现方法

asp.net(C#) 生成随机验证码的代码

ASP.NET程序中常用代码汇总

c# .net 生成图片验证码的代码

在ASP.Net中实现flv视频转换的代码

适用与firefox ASP.NET无刷新二级联动下拉列表

ASP.NET XmlHttp跨域访问实现代码

精品推荐
分类导航