读书人

树状图 无限级 递归,该如何处理

发布时间: 2013-04-21 21:18:07 作者: rapoo

树状图 无限级 递归
要做一个活的导航

代码如下:
string myTree = "{";

JLUserBLL bll = new JLUserBLL();

DataTable table = bll.PassValue();

DataView dv = new DataView(table);

string loginUser = this.loginUser.username;
var list = bll.GetMenu(loginUser);
string tree = "";
foreach (var item in list)
{
dv.RowFilter = "id=" + item.ChannelId + "";

tree = TreeDataBind(dv);
}
tree = tree.Substring(0, tree.Length - 1);
tree += "}";


public string TreeDataBind(DataView dv)
{

foreach (DataRowView drv in dv)
{

myTree += "["; //创建一个新的节点
//为新的借点设置属性
myTree += drv["DeptName"].ToString() + ",";
myTree += drv["ParentId"].ToString() + ",";
myTree += drv["id"].ToString() + ",";
myTree += drv["DeptLevel"].ToString();
myTree += "],";
//过滤数据视图 父类id = 上一级的tid
dv.RowFilter = "id=" + drv["ParentId"].ToString();
//自己调用自己
de.Add(dement);

TreeDataBind(dv);
}
de.OrderBy(e => e.DeptLevel);



return trees;
}树状图 无限级 递归,该如何处理

问题是它是倒着排序departLevel shi 3 2 1 并且 如何传给前台接收,前台如何接收 求代码! 在线等 行业数据 String 递归 导航
[解决办法]
一张表,表示树
Id pId Name Level
0 null 总公司 1
1 0 分公司一 2
2 0 分公司二 2
3 2 业务部 3

遍历时,
int level=1;
do
{
选出level=1的行集合,遍历;
每一行取出ID,搜索表中pId=ID的行,遍历,加到结果集中;
递归所有层级;
level++;
}
while(level选出的行数为0停止)
[解决办法]
你要转成json输出?

读书人网 >asp.net

热点推荐