c# TreeView 数据递归绑定的算法
2015-05-05 09:27
357 查看
最近做项目遇到一个TreeView数据绑定的问题。
问题大概是这样的:一个部门有好多级数,可能以后部门人员还会变动。用Combobx显示当然不合适,所以想到用TreeView显示,那么用TreeView实现数据,有两种选择,有多少级部门就循环多少次;还是就是用递归绑定。显然在不考虑效率的情况下,递归绑定显然更灵活,更合适。
一、代码如下:
//绑定第一级节点
private void bingTreeNode() {
#region
DataTable dtFatherNode;
dtFatherNode = mybumenTableAdapter.getBumenByFaId(0);
if (dtFatherNode.Rows.Count > 0)
{
for (int ShangPinTypeIndex = 0; ShangPinTypeIndex < dtFatherNode.Rows.Count; ShangPinTypeIndex++)
{
TreeNode father = new TreeNode();
string buMenName = dtFatherNode.Rows[ShangPinTypeIndex]["buMenMC"].ToString().Trim();
int ShangPinTypeID = Convert.ToInt32(dtFatherNode.Rows[ShangPinTypeIndex]["buMenId"].ToString().Trim());
father.Text = buMenName;
father.Tag = ShangPinTypeID;
tvBuMen.Nodes.Add(father);
bingSonNode(father);
}
}
#endregion
}
//绑定子节点
private void bingSonNode(TreeNode father)
{
int id = Convert.ToInt32(father.Tag);
DataTable dtBuMen = mybumenTableAdapter.getBumenByFaId(id);
if (dtBuMen.Rows.Count>0)
{
for (int ShangPinTypeIndex = 0; ShangPinTypeIndex < dtBuMen.Rows.Count; ShangPinTypeIndex++)
{
TreeNode nodeson = new TreeNode();
string buMenName = dtBuMen.Rows[ShangPinTypeIndex]["buMenMC"].ToString().Trim();
int myfatherId = Convert.ToInt32(dtBuMen.Rows[ShangPinTypeIndex]["buMenId"].ToString().Trim());
nodeson.Text = buMenName;
nodeson.Tag = myfatherId;
father.Nodes.Add(nodeson);
bingSonNode(nodeson);
}
}
else {
return;
}
}
二、运行效果图:
问题大概是这样的:一个部门有好多级数,可能以后部门人员还会变动。用Combobx显示当然不合适,所以想到用TreeView显示,那么用TreeView实现数据,有两种选择,有多少级部门就循环多少次;还是就是用递归绑定。显然在不考虑效率的情况下,递归绑定显然更灵活,更合适。
一、代码如下:
//绑定第一级节点
private void bingTreeNode() {
#region
DataTable dtFatherNode;
dtFatherNode = mybumenTableAdapter.getBumenByFaId(0);
if (dtFatherNode.Rows.Count > 0)
{
for (int ShangPinTypeIndex = 0; ShangPinTypeIndex < dtFatherNode.Rows.Count; ShangPinTypeIndex++)
{
TreeNode father = new TreeNode();
string buMenName = dtFatherNode.Rows[ShangPinTypeIndex]["buMenMC"].ToString().Trim();
int ShangPinTypeID = Convert.ToInt32(dtFatherNode.Rows[ShangPinTypeIndex]["buMenId"].ToString().Trim());
father.Text = buMenName;
father.Tag = ShangPinTypeID;
tvBuMen.Nodes.Add(father);
bingSonNode(father);
}
}
#endregion
}
//绑定子节点
private void bingSonNode(TreeNode father)
{
int id = Convert.ToInt32(father.Tag);
DataTable dtBuMen = mybumenTableAdapter.getBumenByFaId(id);
if (dtBuMen.Rows.Count>0)
{
for (int ShangPinTypeIndex = 0; ShangPinTypeIndex < dtBuMen.Rows.Count; ShangPinTypeIndex++)
{
TreeNode nodeson = new TreeNode();
string buMenName = dtBuMen.Rows[ShangPinTypeIndex]["buMenMC"].ToString().Trim();
int myfatherId = Convert.ToInt32(dtBuMen.Rows[ShangPinTypeIndex]["buMenId"].ToString().Trim());
nodeson.Text = buMenName;
nodeson.Tag = myfatherId;
father.Nodes.Add(nodeson);
bingSonNode(nodeson);
}
}
else {
return;
}
}
二、运行效果图:
相关文章推荐
- C# 递归的应用 TreeView递归绑定数据
- C# 递归的应用 TreeView递归绑定数据
- C# 递归的应用 TreeView递归绑定数据
- C# 递归的应用 TreeView递归绑定数据
- TreeView递归绑定无限分类数据
- TreeView 绑定数据---递归查询无限极TreeView
- 递归绑定数据到treeview
- WPF ListView 分组数据绑定 TreeView递归数据绑定
- C#动态递归绑定TreeView(WinForm)
- 关于如何递归给TreeView从数据库中循环绑定数据
- TreeView数据绑定的方法(可实现无限递归)
- C# TreeView,递归循环数据加载到treeView1中
- c#递归 读取文件目录,然后绑定treeview
- C# .NET treeView(树形控件)绑定数据的通用方法 (精)
- C#TreeView数据绑定+拖动节点
- TreeView递归绑定数据
- TreeView控件递归绑定数据学习
- C# treeview 控件动态绑定数据
- C# treeview 绑定数据 【转】