数据库Company
表 Roles
id name parentId
1 总经理 2
2 管理员 0
3 人事经理 1
4 财务经理 1
5 人事部科长 4
6 项目经理 5
7 组长 6
8 普通职员 7
如何才能根据parentId分级绑定显示数据?
数据库Company
表 Roles
id name parentId
1 总经理 2
2 管理员 0
3 人事经理 1
4 财务经理 1
5 人事部科长 4
6 项目经理 5
7 组长 6
8 普通职员 7
如何才能根据parentId分级绑定显示数据?
这要看你想怎么绑定,是点开treeView节点时,动态添加子节点,还是想直接一次性绑定,建议使用动态添加子节点,这样的话在页面打开时不会“很卡”(即不用递归绑定子节点)。绑定的方法很多,说说思想吧,看你的这个例子,对表结构已经很清楚了,你在页面的Page_Load函数中调用先判断下if(!IsPostBack),然后调用你自己写的绑定树的函数,这样页面回调时,不会重复绑定。那么这个绑定树的函数如何实现呢?建议你分两个方法,即第一个方法先绑定第一层节点,即先把parentId为0的节点提取出来,然后利用foreach(TreeNode node inTreeView)循环,每次new一个TreeNode, var node = new TreeNode(it.Name, it.id);,指定TreeNode的展开方式为ServerSideCallBack;,调用treeview的 TreeView.Nodes.Add(node)方法绑定第一层节点,这样第一个函数就结束了。第二个函数是一个事件驱动函数,即节点展开事件驱动,每次获得父节点node.Value属性,里面是你的ID值,这个函数类似于protected void Tree_NodeExpand(object sender, TreeNodeEventArgs e),e.Node.Value既是父节点node.Value属性,利用这个值,取出数据库中parentId为这个值的集合,利用同样的方法,绑定子节点,方法类似parentNode.Nodes.Add(node);