动态创建TreeView控件
方法:
(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控件的初始化过程。
完整代码如下:
1
using System;2

3
using System.Data;4

5
using System.Configuration;6

7
using System.Collections;8

9
using System.Web;10

11
using System.Web.Security;12

13
using System.Web.UI;14

15
using System.Web.UI.WebControls;16

17
using System.Web.UI.WebControls.WebParts;18

19
using System.Web.UI.HtmlControls;20

21
using System.Data.SqlClient;22

23
24

25
public partial class UsingTreeView : System.Web.UI.Page26

27


{28

29
protected void Page_Load(object sender,EventArgs e)30

31

{32

33
if(!Page.IsPostBack)34

35

{ /**////显示数据36

37
BindCategoryTreeView(CategoryView,true,"-1");38

39
}40

41
} 42

43
public void BindCategoryTreeView(TreeView treeView,bool isExpanded,string sSelectedData)44

45

{46

47
DataTable dataTable = GetCategorys().Tables[0];48

49

treeView.Nodes.Clear(); /**////清空树的所有节点50

51
52

53

DataRow[] rowList = dataTable.Select("ParentID='-1'"); /**////获取所有 DataRow 对象的数组。54

55
if(rowList.Length <= 0) return;56

57

/**////创建根节点58

59
TreeNode rootNode = new TreeNode();60

61

/**////设置根节点属性62

63
rootNode.Text = rowList[0]["Desn"].ToString();64

65

rootNode.Value = rowList[0]["CategoryID"].ToString(); /**////设置根节点的Key值66

67

rootNode.Expanded = isExpanded; /**////使用 Expanded 属性指定或确定节点的展开状态。68

69
rootNode.Selected = true;70

71

/**////添加根节点72

73
treeView.Nodes.Add(rootNode);74

75

/**////创建其他节点76

77
CreateChildNode(rootNode,dataTable,isExpanded,sSelectedData);// 递归创建其它节点78

79
}80

81
private void CreateChildNode(TreeNode parentNode,DataTable dataTable,bool isExpanded,string sSelectedData)82

83

{84

85

/**////选择数据时,添加了排序表达式OrderBy86

87
DataRow[] rowList = dataTable.Select("ParentID='" + parentNode.Value + "'","OrderBy");88

89
foreach(DataRow row in rowList)90

91

{ /**////创建新节点92

93
TreeNode node = new TreeNode();94

95

/**////设置节点的属性96

97
node.Text = row["Desn"].ToString();98

99
node.Value = row["CategoryID"].ToString();100

101
node.Expanded = isExpanded;102

103
if(node.Value == sSelectedData)104

105

{106

107
node.Selected = true;108

109
}110

111
112

113
parentNode.ChildNodes.Add(node);114

115

/**////递归调用,创建其他节点116

117
CreateChildNode(node,dataTable,isExpanded,sSelectedData);118

119
}120

121
}122

123
public DataSet GetCategorys()124

125

{126

127

/**////创建链接128

129
SqlConnection myConnection = new SqlConnection(130

131
ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);132

133
134

135

/**////定义SQL语句136

137
string cmdText = "SELECT * FROM Category";138

139

/**////创建Command140

141
SqlDataAdapter da = new SqlDataAdapter(cmdText,myConnection);142

143
144

145

/**////定义DataSet146

147
DataSet ds = new DataSet();148

149
try150

151

{152

153

/**////打开链接154

155
myConnection.Open();156

157

/**////读取数据158

159
da.Fill(ds);160

161
}162

163
catch(SqlException ex)164

165

{166

167

/**////抛出异常168

169
throw new Exception(ex.Message,ex);170

171
}172

173
finally174

175

{176

177
myConnection.Close();178

179
}180

181

/**////返回DataSet182

183
return ds;184

185
}186

187
}
浙公网安备 33010602011771号