无限级的树

WJY258378034 2010-11-08 04:13:17
有四个字段

第一个是ID号

第二个是深度

第三个是父节点的号

第四个是节点名




我要怎么做成无限级的树呢!


有资料给资料的!有实例最好的
...全文
96 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WJY258378034 2010-11-08
  • 打赏
  • 举报
回复
很谢谢大家的回答
Name_456 2010-11-08
  • 打赏
  • 举报
回复
[qq346127416] 好方法。
ASPNETCHENGXU 2010-11-08
  • 打赏
  • 举报
回复
qq346127416 2010-11-08
  • 打赏
  • 举报
回复


//绑定方法
private void BindData()
{
//创建根节点
TreeNode root = new TreeNode();
root.Text = "权限设置";
root.Value = "0";
this.TreeView1.Nodes.Add(root);
CreateTree(0, root); //创建树的方法


}

//创建树地方法
private void CreateTree(int Fatherid, TreeNode FatherNode)
{
DataRow[] drs = GetDataRow(Fatherid);
if (drs != null)
{
for (int i = 0; i < drs.Length; i++)
{
TreeNode t = new TreeNode();
t.Text = drs[i]["FuncName"].ToString(); //节点名
t.Value = drs[i]["ID"].ToString(); //节点ID
t.NavigateUrl = Convert.ToString(drs[i]["Url"]); //导航链接地址
t.Target = "right";

FatherNode.ChildNodes.Add(t);
int id =Convert.ToInt32(drs[i]["ID"].ToString());
CreateTree(id, t);
}
}
}

//得到所有数据放入缓存
private DataRow[] GetDataRow(int fatherid)
{
DataRow[] drs = null;
object obj = Cache["MyTreeData"];
if (obj != null && obj.ToString() !="")
{
//可以处理
DataSet ds = obj as DataSet;
drs = ds.Tables[0].Select(string.Format(" Fatherid={0}", fatherid)); //父节点ID

}
else
{
//取库里取
DataSet ds = r.SelectFunctionData("");
if (ds != null && ds.Tables[0].Rows.Count != 0)
{
Cache["MyTreeData"] = ds;
drs = ds.Tables[0].Select(string.Format(" Fatherid={0}", fatherid));
}
}

return drs;
}




马老虎 2010-11-08
  • 打赏
  • 举报
回复
ASPNETCHENGXU 2010-11-08
  • 打赏
  • 举报
回复
去,www.51aspx.com 上搜,很多的,原理都是一样的
ASPNETCHENGXU 2010-11-08
  • 打赏
  • 举报
回复
用递归啊,网上有的是啊
leafsoar 2010-11-08
  • 打赏
  • 举报
回复
你的深度字段会不会限制你的“无限“

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧