1个回答
展开全部
加入定义了一个TreeView控件, ID = "Treeview1"
一般采用递归的方式来给TreeView1添加节点,来达到你上面所描述的内容:
伪代码如下:
首先第一个方法是:
TreeView1.Nodes.Clear();
DataTable table = GetTreeViewTable(); // 获取表里的全部内容
DataView view = GetBase(table); //添加你的过滤条件,相当于数据库sql查询里面的where部分
foreach (DataRowView row in view)
{
TreeNode node = new TreeNode();
node.Text = row["Name"].ToString();
node.Value = row["Id"].ToString();
TreeView1.Nodes.Add(node); //添加父节点, 如:教师系统 是最大的父节点
AddNode(table, node); //递归查找其下面的子节点
}
TreeView1.ExpandDepth = 0;
void AddNode(DataTable table, TreeNode node)
{
DataView view = GetChild(table, node.Value);
foreach (DataRowView row in view)
{
TreeNode childnode = new TreeNode();
childnode.Text = row["CategoryName"].ToString();
childnode.Value = row["CategoryId"].ToString();
node.ChildNodes.Add(childnode);
AddNode(table, childnode);
}
}
DataView GetChild(DataTable table, string id)
{
DataView view = new DataView(table);
view.RowFilter = "ParentId='" + id + "'";
view.Sort = "OrderBy";
return view;
}
GetTreeViewTable()和GetBase()很好写了,你自己仿照上面搞定,串起来就OK了。
已经非常详细了吧
一般采用递归的方式来给TreeView1添加节点,来达到你上面所描述的内容:
伪代码如下:
首先第一个方法是:
TreeView1.Nodes.Clear();
DataTable table = GetTreeViewTable(); // 获取表里的全部内容
DataView view = GetBase(table); //添加你的过滤条件,相当于数据库sql查询里面的where部分
foreach (DataRowView row in view)
{
TreeNode node = new TreeNode();
node.Text = row["Name"].ToString();
node.Value = row["Id"].ToString();
TreeView1.Nodes.Add(node); //添加父节点, 如:教师系统 是最大的父节点
AddNode(table, node); //递归查找其下面的子节点
}
TreeView1.ExpandDepth = 0;
void AddNode(DataTable table, TreeNode node)
{
DataView view = GetChild(table, node.Value);
foreach (DataRowView row in view)
{
TreeNode childnode = new TreeNode();
childnode.Text = row["CategoryName"].ToString();
childnode.Value = row["CategoryId"].ToString();
node.ChildNodes.Add(childnode);
AddNode(table, childnode);
}
}
DataView GetChild(DataTable table, string id)
{
DataView view = new DataView(table);
view.RowFilter = "ParentId='" + id + "'";
view.Sort = "OrderBy";
return view;
}
GetTreeViewTable()和GetBase()很好写了,你自己仿照上面搞定,串起来就OK了。
已经非常详细了吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询