C#如何在TreeView中显示结构化列表 [英] C# How to show structured list in a TreeView
问题描述
嘿伙计们,
我有一个我无法解决的问题。我只需要一个提示,如何解决它。
问题:
我从SQL查询中得到以下列表:
GROUP:
01.员工/管理
01.员工/管理
01 。员工/销售
...
02.类型/会员
02.类型/客户
...
等等...
我怎样才能将它变成树视图?像这样懒散:
- 全部
- 01.员工< b>< / b>
---管理
我的尝试之一:
Hey guys,
I have a problem which I cant solve yet. I just need a hint, how to solve it.
Problem:
I get the following list from a sql query:
GROUP:
01. Employees/Administration
01. Employees/Managment
01. Employees/Sales
...
02. Type/Member
02. Type/Customer
...
and so on...
How can I get this into a treeview? To loook like this:
- All
-- 01. Employees<b></b>
--- Administration
One of my tries:
if (rs.RecordCount > 0)
{
while (!rs.EOF)
{
tempNode = tree;
string[] array = rs.Fields["GRUPPE"].Value.ToString().Split('/');
foreach (string str in array)
{
if (tempNode.Nodes.ContainsKey(str))
{
tempNode = tree.Nodes[str];
}
else
{
TreeNode newNode = new TreeNode();
newNode.Name = str;
newNode.Text = str;
//*** PROBLEM!!!
tree.Nodes.Add(newNode);
//***
tempNode = newNode;
}
}
rs.MoveNext();
}
基本上,我的问题是如何添加节点第二或第三或第N级?动态地?
希望你理解我的问题?!
亲切的问候
它应该是怎样的例子:
http://img198.imageshack.us/img198/5951/9zq.png [ ^
推荐答案
我为此创建了示例。希望它会有所帮助
data.txt
I created sample for this. Hope it will help
data.txt
Employees/Administration/Teamleader
Employees/Administration/Manager
Employees/Sales/Manager
Employees/Sales/Executive
string []str = File.ReadAllLines(@"D:\data.txt");
TreeNode root = new TreeNode();
root.Text = "All";
foreach (string s in str)
{
string[] arr = s.Split('/');
TreeNode department = null;
if (!root.Nodes.ContainsKey(arr[1]))
{
root.Nodes.Add(arr[1], arr[1]);
}
department = root.Nodes[arr[1]];
department.Nodes.Add(new TreeNode(arr[2]));
}
treeView1.Nodes.Add(root);
好的,我现在想出来了。请看下面我的代码示例,到目前为止我的工作正常。
Ok i figured it out now. Please see below my code sample, which works fine for me so far.
string[] str = File.ReadAllLines(@"C:\test\test.txt");
TreeNode root = new TreeNode();
root.Text = "All";
foreach (string s in str)
{
string[] arr = s.Split('/');
TreeNode parent = root;
foreach (string ss in arr)
{
if (!parent.Nodes.ContainsKey(ss))
{
TreeNode newNode = new TreeNode();
newNode.Name = ss;
newNode.Text = ss;
parent.Nodes.Add(newNode);
parent = newNode;
}
else
{
parent = parent.Nodes[ss];
}
}
}
treeView1.Nodes.Add(root);
treeView1.ExpandAll();
这篇关于C#如何在TreeView中显示结构化列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!