激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務器之家 - 編程語言 - ASP.NET教程 - asp.net實現DropDownList,TreeView,ListBox的無限極分類目錄樹

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

2020-01-13 16:29smartsmile2012 ASP.NET教程

這篇文章主要介紹了asp.net實現DropDownList,TreeView,ListBox的無限極分類目錄樹,結合實例形式較為詳細的分析了asp.net常見控件實現無限極分類目錄樹的具體實現步驟與相關操作技巧,需要的朋友可以參考下

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
429
主站蜘蛛池模板: 久久在线精品 | 国产免费午夜 | 亚洲特黄a级毛片在线播放 久久久入口 | 3344永久免费 | 国产精品观看在线亚洲人成网 | 亚洲码无人客一区二区三区 | xp123精品视频| 美国av在线免费观看 | 日本一级黄色大片 | 亚洲小视频在线 | av影院在线播放 | 男女污污视频网站 | 免费看操片 | 九九热精品视频在线 | 久草在线新视觉 | 日本中文高清 | 91午夜视频 | 激情综合视频 | 天天都色视频 | 日本看片一区二区三区高清 | japan护士性xxxⅹhd | 久草在线观看福利视频 | 中午日产幕无线码1区 | 国产午夜免费视频 | 最新毛片在线观看 | 日本一区视频在线播放 | 爱逼爱操综合网 | 久久国产精品久久久久 | 国产成人av免费观看 | 欧美性色生活片免费播放 | 99在线啪 | 亚洲精品久久久久久下一站 | 国产手机国产手机在线 | 91视频站| 日韩电影av在线 | 日韩视频一区在线 | 国产视频在线观看一区二区三区 | 亚洲精品久久久久久久久久 | 99精品电影 | 宅男噜噜噜66一区二区 | 中文字幕在线亚洲 |