首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

TREEVIEW,该如何解决

2012-01-19 
TREEVIEW本人想通过TREEVIEW控件来实现目录树的功能(WEBFORM形式)其中有表AA字段ID,DETAIL,NAME表数据如下

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!

热点排行