利用.net TreeView控件实现无限级分类
时间: 2023-12-03 09:05:40 浏览: 30
TreeView控件是.NET中常用的控件之一,可以用来显示树形结构数据。以下是使用TreeView控件来实现无限级分类的步骤:
1. 准备数据:将分类数据存储在数据库中,每个分类记录应该包含分类ID、分类名称、父分类ID等字段。
2. 读取数据:使用ADO.NET连接数据库,并查询所有分类数据。
3. 构建树形结构:遍历查询结果,将每个分类节点添加到TreeView控件中。对于每个节点,设置节点文本为分类名称,节点值为分类ID。如果一个节点有父节点,使用TreeView控件的Nodes.Find方法查找父节点,并将当前节点添加到父节点的子节点集合中。
以下是示例代码:
```
//连接数据库
string connectionString = "Data Source=(local);Initial Catalog=MyDatabase;Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
//查询分类数据
SqlCommand command = new SqlCommand("SELECT CategoryId, CategoryName, ParentCategoryId FROM Categories", connection);
SqlDataReader reader = command.ExecuteReader();
//构建树形结构
while (reader.Read())
{
TreeNode node = new TreeNode();
node.Text = reader["CategoryName"].ToString();
node.Value = reader["CategoryId"].ToString();
string parentId = reader["ParentCategoryId"].ToString();
if (string.IsNullOrEmpty(parentId))
{
//根节点
TreeView1.Nodes.Add(node);
}
else
{
//非根节点
TreeNode parentNode = TreeView1.Nodes.Find(parentId, true)[0];
parentNode.ChildNodes.Add(node);
}
}
//释放资源
reader.Close();
connection.Close();
```
以上代码将从数据库中查询所有分类数据,并将每个分类节点添加到TreeView控件中。由于使用了递归查询父节点,所以可以支持无限级分类。