TREEVIEW
本人想通过TREEVIEW控件来实现目录树的功能(WEBFORM形式)
其中有表AA字段ID,DETAIL,NAME
表数据如下: ID DETAIL NAME
1 技术部 AAA
2 技术部 BBB
3 电话部 CCC
4 电话部 DDD
5 电话部 EEE
6 上门部 FFF
7 上门部 GGG
8 上门部 HHH
通过TREEVIEW控件显示:
公司
技术部
AAA
BBB
电话部
CCC
DDD
EEE
上门部
FFF
GGG
HHH
如果表AA中的数据有变化TREEVIEW的结构也进行改变
请问大家如何实现,本人现只有最后10分了,如果有解决方法一定再加分
先谢了!!!
[解决办法]
不更改你的数据库结构同样可以办到
protected void Button1_Click(object sender, EventArgs e)
{
OleDbCommand command = new OleDbCommand( "SELECT DETAIL, [NAME] FROM TABLE1 ORDER BY DETAIL,[NAME] ", conn);
OleDbDataReader dr = command.ExecuteReader();
//TreeView1.BeginUpdate();
TreeView1.Nodes.Clear();
TreeNode parent = null;
TreeNode child = null;
string detail = " ";
TreeNode Grandparent = new TreeNode( "公司 ");
TreeView1.Nodes.Add(Grandparent);
while (dr.Read())
{
if (detail != dr.GetString(0))
{
parent = new TreeNode(dr.GetString(0));
Grandparent.ChildNodes.Add(parent);
detail = dr.GetString(0);
}
child = new TreeNode(dr.GetString(1));
parent.ChildNodes.Add(child);
}
//TreeView1.EndUpdate();
dr.Close();
}
[解决办法]
如果不会做还是用简单的方法吧,给你个思路:
从表中读两次,一次读出所有部门,第二次读整张表,保存为两个DataSet;
循环第一张表,添加节点,每添加一个节点,检查第二张表有没有和它相符的记录(人员),有就循环添加人员(用查找表 Select() 得出 DataRow 数组,然后 Foreach 这个数组);
OK!