1、从数据库中得到TABLE
2、假设需要绑定“aaa”到第一级节点的node1上,那么直接给该节点的text属性赋值为"aaa"就可以了:
TreeNode node1=new TreeNode();
node1.Text="aaa";
node1.ID="1";//只是为了标识;
TreeViewName.Nodes.Add(node1);
3、如果需要绑定“bbb”到2中产生的节点的子节点的话:
TreeNode node11=new TreeNode();
node11.Text="bbb";
node11.ID="11";
node1.Nodes.Add(node11);
4、将你从数据库中得到的值代替上边的字符串就好了。很简单的!
2、假设需要绑定“aaa”到第一级节点的node1上,那么直接给该节点的text属性赋值为"aaa"就可以了:
TreeNode node1=new TreeNode();
node1.Text="aaa";
node1.ID="1";//只是为了标识;
TreeViewName.Nodes.Add(node1);
3、如果需要绑定“bbb”到2中产生的节点的子节点的话:
TreeNode node11=new TreeNode();
node11.Text="bbb";
node11.ID="11";
node1.Nodes.Add(node11);
4、将你从数据库中得到的值代替上边的字符串就好了。很简单的!
计量装置类型表: 类型编号、类型名称、线路编号 (较原来的表多一个‘线路编号’)
计量装置表: 装置编号、装置名称、类型编号 (较原来的表少一个‘线路编号’,因为该字段已经放到类型表中了)这样的话就好办了,把3个表的数据加载到3个DataTable中,用一个3重循环来加载。DataTableLine // 已有数据的线路表
DataTableCategory // 已有数据的类型表
DataTableDevice // 已有数据的装置表
TreeView1 // TreeView 控件//
// 程序段开始,假设所有的编号字段均为字符型;若为其他类型,只需更改下面DataTable的
// Select方法的查询语句
//TreeNode NodeLine; // 线路节点(第一层)
TreeNode NodeCategory; // 类型节点(第二层)for(DataRow rowLine in DataTableLine.Rows) // 遍历所有的线路
{
//
// 将线路节点添加到TreeView控件中
//
NodeLine=new TreeNode(rowLine.ItemArray[1].ToString());
TreeView1.Nodes.Add(NodeLine);
//
// 根据当前遍历的线路表的线路编号,找出该编号下的所有类型
//
DataRow categories=DataTableCategory.Select("线路编号='"+rowLine.ItemArray[0].ToString()+"'");
//
// 对当前编号下的所有类型进行遍历,
//
for(DataRow rowCategory in categories)
{
//
// 将类型添加到线路节点下
//
NodeCategory=new TreeNode(rowCategory.ItemArray[1].ToString());
NodeLine.Nodes.Add(NodeCategory); //
// 找出该类型下的所有装置
//
DataRow devices=DataTableDevice.Select("类型编号='"+categories.ItemArray[0].ToString()+"'");
for(DataRow rowDevice in devices)
{
// 将节点全部添加到类型节点下
NodeCategory.Nodes.Add(new TreeNode(rowDevice.ItemArray[1].ToString()));
}
}
}其他说明:
1.上面的代码是我直接回复写的,没有在VS中调试,难免有BUG;
2.上面的效率相对来说比较低,我曾经用过的另一中方法是将3个表的数据在一个存储过程中通过一定的规则构造成一个表,这样只需用一个for()就可以完成。楼主可以试试。
DataRow categories=DataTableCategory.Select("线路编号='"+rowLine.ItemArray[0].ToString()+"'");应该是
DataRow[] categories=DataTableCategory.Select("线路编号='"+rowLine.ItemArray[0].ToString()+"'");其他的两个对Select方法的调用也要作相应的更改,将DataRow改成DataRow[]