国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net實(shí)現(xiàn)DropDownList,TreeView,ListBox的無限極分類目錄樹

2024-07-10 12:47:05
字體:
供稿:網(wǎng)友

本文實(shí)例講述了asp.net實(shí)現(xiàn)DropDownList,TreeView,ListBox的無限極分類目錄樹。,具體如下:

#region DropDownList無限遞歸顯示層次關(guān)系/// <summary>/// 創(chuàng)建無限分級(jí)下拉列表框/// </summary>/// <param name="ddlst">下拉控件</param>/// <param name="dt">源DataTable</param>/// <param name="text">text字段</param>/// <param name="value">value字段</param>/// <param name="parentid">深度字段 例如parentid</param>public static void CreateLevelDropDown(DropDownList ddlst, DataTable dt, string text, string value, string parentid){  ArrayList allItems = new ArrayList();  DataRow[] rows = dt.Select(parentid + "=0");  foreach (DataRow row in rows)    CreateLevelDropDownAssistant(dt, ref  allItems, row, string.Empty, text, value, parentid);  ListItem[] items = new ListItem[allItems.Count];  allItems.CopyTo(items);  ddlst.Items.AddRange(items);}/// <summary>/// 遞歸綁定子節(jié)點(diǎn)/// </summary>/// <param name="dt">源DataTable</param>/// <param name="items">數(shù)組</param>/// <param name="parentRow">當(dāng)前節(jié)點(diǎn)</param>/// <param name="curHeader">前綴</param>/// <param name="text">text字段</param>/// <param name="value">value字段</param>/// <param name="parentid">深度字段 例如parentid</param>private static void CreateLevelDropDownAssistant(DataTable dt, ref  ArrayList items, DataRow parentRow, string curHeader, string text, string value, string parentid){  ListItem newItem = new ListItem(curHeader + Until.CutString(parentRow[text].ToString(), 18, true), parentRow[value].ToString());  items.Add(newItem);  DataRow[] rows = dt.Select(parentid + "=" + newItem.Value);  for (int i = 0; i < rows.Length - 1; i++)    CreateLevelDropDownAssistant(dt, ref  items, rows[i], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┣", text, value, parentid);  if (rows.Length > 0)    CreateLevelDropDownAssistant(dt, ref  items, rows[rows.Length - 1], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┗", text, value, parentid);}#endregion#region TreeView 無限遞歸顯示層次關(guān)系目錄樹/// <summary>/// 創(chuàng)建無限分級(jí)目錄樹TreeView/// </summary>/// <param name="treeview">TreeView空間</param>/// <param name="dt">數(shù)據(jù)源DataTable</param>/// <param name="text">text字段</param>/// <param name="value">value字段</param>/// <param name="parentid">深度字段 例如parentid</param>public static void CreateLevelTreeView(TreeView treeview, DataTable dt, string text, string value, string parentid){  DataView dv = dt.DefaultView;  dv.RowFilter = parentid + "=0";  foreach (DataRowView drv in dv)  {    TreeNode node = new TreeNode();    node.Text = drv[text].ToString();    node.Value = drv[value].ToString();    node.Expanded = false;    treeview.Nodes.Add(node);    CreatTreeViewChildNode(dv, node, text, value, parentid);  }}/// <summary>/// 遞歸綁定子節(jié)點(diǎn)/// </summary>/// <param name="dv">源DataView</param>/// <param name="parentNode">當(dāng)前節(jié)點(diǎn)</param>/// <param name="text">text字段</param>/// <param name="value">value字段</param>/// <param name="parentid">深度字段 例如parentid</param>private static void CreatTreeViewChildNode(DataView dv, TreeNode parentNode, string text, string value, string parentid){  dv.RowFilter = parentid + "=" + parentNode.Value;  foreach (DataRowView row in dv)  {    TreeNode replyNode = new TreeNode();    replyNode.Text = row[text].ToString();    replyNode.Value = row[value].ToString();    replyNode.Expanded = false;    parentNode.ChildNodes.Add(replyNode);    CreatTreeViewChildNode(dv, replyNode, text, value, parentid);  }}/// <summary>/// 創(chuàng)建無限分級(jí)目錄樹TreeView/// </summary>/// <param name="treeview">TreeView空間</param>/// <param name="dt">數(shù)據(jù)源DataTable</param>/// <param name="text">text字段</param>/// <param name="value">value字段</param>/// <param name="url">url字段</param>/// <param name="parentid">深度字段 例如parentid</param>public static void CreateLevelTreeView(TreeView treeview, DataTable dt, string text, string value, string url, string parentid){  DataView dv = dt.DefaultView;  dv.RowFilter = parentid + "=0";  foreach (DataRowView drv in dv)  {    TreeNode node = new TreeNode();    node.Text = drv[text].ToString();    node.Value = drv[value].ToString();    node.NavigateUrl = drv[url].ToString();    node.Expanded = false;    treeview.Nodes.Add(node);    CreatTreeViewChildNode(dv, node, text, value, url, parentid);  }}/// <summary>/// 遞歸綁定子節(jié)點(diǎn)/// </summary>/// <param name="dv">源DataView</param>/// <param name="parentNode">當(dāng)前節(jié)點(diǎn)</param>/// <param name="text">text字段</param>/// <param name="value">value字段</param>/// <param name="url">url字段</param>/// <param name="parentid">深度字段 例如parentid</param>private static void CreatTreeViewChildNode(DataView dv, TreeNode parentNode, string text, string value, string url, string parentid){  dv.RowFilter = parentid + "=" + parentNode.Value;  foreach (DataRowView row in dv)  {    TreeNode replyNode = new TreeNode();    replyNode.Text = row[text].ToString();    replyNode.Value = row[value].ToString();    replyNode.NavigateUrl = row[url].ToString();    replyNode.Expanded = false;    parentNode.ChildNodes.Add(replyNode);    CreatTreeViewChildNode(dv, replyNode, text, value, url, parentid);  }}#endregion#region 創(chuàng)建無限分級(jí)ListBox/// <summary>/// 創(chuàng)建無限分級(jí)ListBox/// </summary>/// <param name="ddlst">ListBox控件</param>/// <param name="dt">源DataTable</param>/// <param name="text">text字段</param>/// <param name="value">value字段</param>/// <param name="parentid">深度字段 例如parentid</param>public static void CreateLevelListBox(ListBox ddlst, DataTable dt, string text, string value, string parentid){  ArrayList allItems = new ArrayList();  DataRow[] rows = dt.Select(parentid + "=0");  foreach (DataRow row in rows)    CreateLevelListBoxAssistant(dt, ref  allItems, row, string.Empty, text, value, parentid);  ListItem[] items = new ListItem[allItems.Count];  allItems.CopyTo(items);  ddlst.Items.AddRange(items);}/// <summary>/// 遞歸綁定子節(jié)點(diǎn)/// </summary>/// <param name="dt">源DataTable</param>/// <param name="items">數(shù)組</param>/// <param name="parentRow">當(dāng)前節(jié)點(diǎn)</param>/// <param name="curHeader">前綴</param>/// <param name="text">text字段</param>/// <param name="value">value字段</param>/// <param name="parentid">深度字段 例如parentid</param>private static void CreateLevelListBoxAssistant(DataTable dt, ref  ArrayList items, DataRow parentRow, string curHeader, string text, string value, string parentid){  ListItem newItem = new ListItem(curHeader + Until.CutString(parentRow[text].ToString(), 18, true), parentRow[value].ToString());  items.Add(newItem);  DataRow[] rows = dt.Select(parentid + "=" + newItem.Value);  for (int i = 0; i < rows.Length - 1; i++)    CreateLevelListBoxAssistant(dt, ref  items, rows[i], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┣", text, value, parentid);  if (rows.Length > 0)    CreateLevelListBoxAssistant(dt, ref  items, rows[rows.Length - 1], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┗", text, value, parentid);}#endregion            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 龙州县| 洛宁县| 景谷| 临泉县| 建瓯市| 宝坻区| 盐源县| 南汇区| 商丘市| 乃东县| 河津市| 安图县| 米易县| 宣恩县| 勐海县| 涟源市| 西充县| 寻乌县| 阿克苏市| 日喀则市| 十堰市| 同德县| 逊克县| 苍梧县| 城固县| 延庆县| 普兰店市| 临湘市| 丘北县| 海晏县| 宝鸡市| 合作市| 武安市| 彭州市| 郴州市| 聂拉木县| 芷江| 当阳市| 宿松县| 新余市| 布拖县|