麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

asp.net實現DropDownList,TreeView,ListBox的無限極分類目錄樹

2024-07-10 13:30:40
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了asp.net實現DropDownList,TreeView,ListBox的無限極分類目錄樹,結合實例形式較為詳細的分析了asp.net常見控件實現無限極分類目錄樹的具體實現步驟與相關操作技巧,需要的朋友可以參考下
 

本文實例講述了asp.net實現DropDownList,TreeView,ListBox的無限極分類目錄樹。分享給大家供大家參考,具體如下:

#region DropDownList無限遞歸顯示層次關系/// <summary>/// 創建無限分級下拉列表框/// </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>/// 遞歸綁定子節點/// </summary>/// <param name="dt">源DataTable</param>/// <param name="items">數組</param>/// <param name="parentRow">當前節點</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 無限遞歸顯示層次關系目錄樹/// <summary>/// 創建無限分級目錄樹TreeView/// </summary>/// <param name="treeview">TreeView空間</param>/// <param name="dt">數據源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>/// 遞歸綁定子節點/// </summary>/// <param name="dv">源DataView</param>/// <param name="parentNode">當前節點</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>/// 創建無限分級目錄樹TreeView/// </summary>/// <param name="treeview">TreeView空間</param>/// <param name="dt">數據源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>/// 遞歸綁定子節點/// </summary>/// <param name="dv">源DataView</param>/// <param name="parentNode">當前節點</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 創建無限分級ListBox/// <summary>/// 創建無限分級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>/// 遞歸綁定子節點/// </summary>/// <param name="dt">源DataTable</param>/// <param name="items">數組</param>/// <param name="parentRow">當前節點</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
 


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产在线精品一区二区三区 | 黄色小视频免费在线观看 | 新久久久久久 | 巨乳毛片 | 亚洲视频成人 | 一级毛片真人免费播放视频 | 黄色网址在线视频 | 国产欧美精品综合一区 | 国产第一页精品 | 国产精品无码久久久久 | 鲁人人人鲁人人鲁精品 | 久久久久久亚洲国产精品 | 91av资源在线 | 中文字幕在线网站 | 精品亚洲一区二区三区 | 亚洲小视频在线 | 欧美成人精品一区二区 | 毛片免费观看视频 | 91成人免费网站 | 亚洲精品午夜视频 | 成人毛片100免费观看 | 爱视频福利 | 国产精品视频一区二区三区四区国 | 天天舔天天插 | 午夜国产在线观看 | 亚洲三区精品 | 羞羞的视频在线免费观看 | 正在播放91 | 精品在线视频播放 | 久久av一区二区 | 久草在线手机视频 | 黄污在线看 | 久久综合久久精品 | 毛片在线视频免费观看 | 国产chinesehd精品91 | 色婷婷一区二区三区 | 欧美日本在线视频 | 黑人一区二区三区四区五区 | 男人久久天堂 | 精品国产一区二区三区久久久蜜月 | 日日噜噜噜夜夜狠狠久久蜜桃 |