方法:
(1)调用函数从数据库中获取商品种类的数据。
(2)创建TreeView控件的根节点。
(3)递归调用函数创建TreeView控件的其它子节点。
(4)调用函数Page_Load(Object sender,EventArgs e)完成TreeView控件的初始化过程。
方法:
(1)调用函数从数据库中获取商品种类的数据。
(2)创建TreeView控件的根节点。
(3)递归调用函数创建TreeView控件的其它子节点。
(4)调用函数Page_Load(Object sender,EventArgs e)完成TreeView控件的初始化过程。
完整代码如下:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
using System;
2![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
using System.Data;
4![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
using System.Configuration;
6![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
using System.Collections;
8![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
using System.Web;
10![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
using System.Web.Security;
12![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
using System.Web.UI;
14![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
using System.Web.UI.WebControls;
16![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
using System.Web.UI.WebControls.WebParts;
18![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
using System.Web.UI.HtmlControls;
20![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
using System.Data.SqlClient;
22![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
24![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
public partial class UsingTreeView : System.Web.UI.Page
26![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
28![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
protected void Page_Load(object sender,EventArgs e)
30![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
32![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
33
if(!Page.IsPostBack)
34![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{ /**////显示数据
36![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
BindCategoryTreeView(CategoryView,true,"-1");
38![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
}
40![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
}
42![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
public void BindCategoryTreeView(TreeView treeView,bool isExpanded,string sSelectedData)
44![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
46![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
DataTable dataTable = GetCategorys().Tables[0];
48![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
treeView.Nodes.Clear(); /**////清空树的所有节点
50![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
52![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
DataRow[] rowList = dataTable.Select("ParentID='-1'"); /**////获取所有 DataRow 对象的数组。
54![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
if(rowList.Length <= 0) return;
56![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////创建根节点
58![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
TreeNode rootNode = new TreeNode();
60![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
61![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////设置根节点属性
62![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
rootNode.Text = rowList[0]["Desn"].ToString();
64![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
rootNode.Value = rowList[0]["CategoryID"].ToString(); /**////设置根节点的Key值
66![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
rootNode.Expanded = isExpanded; /**////使用 Expanded 属性指定或确定节点的展开状态。
68![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
rootNode.Selected = true;
70![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////添加根节点
72![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
73
treeView.Nodes.Add(rootNode);
74![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
75![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////创建其他节点
76![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
CreateChildNode(rootNode,dataTable,isExpanded,sSelectedData);// 递归创建其它节点
78![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
}
80![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
81
private void CreateChildNode(TreeNode parentNode,DataTable dataTable,bool isExpanded,string sSelectedData)
82![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
83![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
84![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
85![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////选择数据时,添加了排序表达式OrderBy
86![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
87
DataRow[] rowList = dataTable.Select("ParentID='" + parentNode.Value + "'","OrderBy");
88![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
89
foreach(DataRow row in rowList)
90![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
91![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{ /**////创建新节点
92![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
93
TreeNode node = new TreeNode();
94![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
95![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////设置节点的属性
96![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
97
node.Text = row["Desn"].ToString();
98![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
99
node.Value = row["CategoryID"].ToString();
100![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
101
node.Expanded = isExpanded;
102![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
103
if(node.Value == sSelectedData)
104![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
105![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
106![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
107
node.Selected = true;
108![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
109
}
110![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
111
112![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
113
parentNode.ChildNodes.Add(node);
114![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
115![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////递归调用,创建其他节点
116![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
117
CreateChildNode(node,dataTable,isExpanded,sSelectedData);
118![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
119
}
120![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
121
}
122![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
123
public DataSet GetCategorys()
124![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
125![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
126![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
127![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////创建链接
128![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
129
SqlConnection myConnection = new SqlConnection(
130![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
131
ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);
132![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
133
134![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
135![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////定义SQL语句
136![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
137
string cmdText = "SELECT * FROM Category";
138![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
139![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////创建Command
140![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
141
SqlDataAdapter da = new SqlDataAdapter(cmdText,myConnection);
142![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
143
144![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
145![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////定义DataSet
146![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
147
DataSet ds = new DataSet();
148![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
149
try
150![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
151![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
152![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
153![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////打开链接
154![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
155
myConnection.Open();
156![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
157![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////读取数据
158![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
159
da.Fill(ds);
160![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
161
}
162![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
163
catch(SqlException ex)
164![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
165![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
166![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
167![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////抛出异常
168![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
169
throw new Exception(ex.Message,ex);
170![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
171
}
172![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
173
finally
174![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
175![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
176![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
177
myConnection.Close();
178![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
179
}
180![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
181![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////返回DataSet
182![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
183
return ds;
184![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
185
}
186![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
187
}