日期:2014-05-17  浏览次数:20458 次

急!急!急!恳求各位帮忙,Treeview如何绑定数据显示数据?
tableC

Id Name Department branch
1 111 部门1 分公司1
2 222 部门3 分公司3
3 333 部门1 分公司1
4 33 部门1 分公司1
5 78 部门2 分公司1
6 99 部门3 分公司3




前台
<asp:TreeView ID="TreeView1" runat="server"
  Font-Size="9pt" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" 
  OnTreeNodeExpanded="TreeView1_TreeNodeExpanded" 
  ForeColor="Black">
  <NodeStyle HorizontalPadding="5px" VerticalPadding="5px" />
  </asp:TreeView>


求后台应该如何写绑定Treeview的代码?


------解决方案--------------------
看楼主的数据是用不到递归的
Id Name Department branch
1 111 部门1 分公司1
2 222 部门3 分公司3
3 333 部门1 分公司1
4 33 部门1 分公司1
5 78 部门2 分公司1
6 99 部门3 分公司3

这实际上只是一张部门表,后面捎带着所属分公司,也就是说只有两层。
先创建一个根节点,然后创建分公司节点,然后部门节点。
实际上只需要循环不需要递归。

TreeNode rootNode = new TreeNode("根", "ID");
rootNode.ImageUrl = IMAGEURL;
TreeView.Nodes.Add(rootNode);

var branchquery = from depart in departs select depart.branch;

foreach (var branch in branchquery.distinct()){
TreeNode branchNode = new TreeNode(branch, "ID");
branchNode.ImageUrl = IMAGEURL;
rootNode.Nodes.Add(branchNode);
var query = from depart in departs where depart.branch==branch select depart;
foreach (var depart in query){
 TreeNode departNode = new TreeNode(depart.Name, "ID");
 departNode.ImageUrl = IMAGEURL;
 branchNode.Nodes.Add(departNode);
}
}