永发信息网

C#中TreeView读取节点的操作

答案:4  悬赏:70  手机版
解决时间 2021-03-13 14:16
  • 提问者网友:风月客
  • 2021-03-13 08:40
有如下字段
01、02、03、0301、0302、04、0401、0402、05、0501、0502
其中01、02、03、04、05他们深度是1,比如说03下面有0301、0302,后面一次类推。提问:如何想这样把他们绑定在TreeView中。这些数据在数据库中是一个列的。求高手指教
最佳答案
  • 五星知识达人网友:空山清雨
  • 2021-03-13 10:07
string[] strs = { "01", "02", "03", "0301", "0302", "04", "0401", "0402", "05", "0501", "0502" };

foreach (string str in strs) {
if (str.Length == 2) {
this.treeView1.Nodes.Add(str, str); // key, text
}
else {
string parent = str.Substring(0, 2);

TreeNode parentNode = this.treeView1.Nodes.Find(parent, true)[0];
parentNode.Nodes.Add(str);
}
}注意: 这种写法, 要保证添加"0301"之前已经添加好"03"节点, 你只要在添加之前对数据源排序一下就行, 或者就是在添加子节点前判断并处理一下
全部回答
  • 1楼网友:酒者煙囻
  • 2021-03-13 11:04
你的表不会就这一列吧 看一下表结构
  • 2楼网友:山有枢
  • 2021-03-13 10:38
首先读取数据库01、02、03、04、05到一个集合里面,例如List<T>.然后foreach这个集合,即又根据01到05记录的id再次读取数据库,这样循环读出子节点绑定就可以了。
  • 3楼网友:从此江山别
  • 2021-03-13 10:13
你好! 递归吧,孩子,只能这样玩了,还有,这些数据你要给他一个对应关系,比如有0301的这行你要给他一个parentId,这列里面放03,否则不大好读取 我的回答你还满意吗~~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯