分层级的代号如何用Treeview树化
比如,内存表dt中的数据内容及格式是:
序号 级别 代号
1 .1 CS001
2 ..2 CSA01
3 ..2 CSB01
4 ...3 CSBA1
5 ...3 CSBB2
6 ....4 CSBBA
7 ...3 CSBD1
8 ..2 CSD02
9 ...3 CSDA1
10 .1 CS010
说明:CSA01 是 CS001 的下级代号,CSB01 与 CSA01 是同级代号,CSBA1 是 CSB01 的下级代号,其他类推。
如此分级别的代号,怎么将这个内存表dt在Treeview中树化起来?
不胜感激……
------解决方案-------------------- 递归绑定就可以了。但你dt里面的结构少了一项就是“上级序号(或id)”,假如表中的话可以直接读出。如没有的话感觉这样设计有点蛋疼了。
------解决方案-------------------- http://www.cnblogs.com/SunYu/archive/2010/04/29/1724367.html
------解决方案-------------------- 只要你能解释为什么CSA01是CS001的下级代号而不是CS010的下级,那么这个问题就很简单了。
你要做的无非就是把你的解释写成代码罢了。你就可以遍历,搜索,查找上下级关系。
当然,之所以那么繁琐,是因为你的数据结构很蛋疼。
------解决方案-------------------- 引用: 恩,具体怎么来操作呢?我对这个树化不是那么精通
写一个给你:
在界面上放一个TreeView,双击窗体空白处,在Form_Load编写如下代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
var data = ("0 0 0\r\n" +
@"1 .1 CS001
2 ..2 CSA01
3 ..2 CSB01
4 ...3 CSBA1
5 ...3 CSBB2
6 ....4 CSBBA
7 ...3 CSBD1
8 ..2 CSD02
9 ...3 CSDA1
10 .1 CS010").Split(new string[] { "\r\n" }, StringSplitOptions.None)
.Select(x => x.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))