C# 生成树的TreeView问题
我必须动态地生成树视图,在这里我发现了要在第n级生成的问题 我可以使用以下代码在两个级别生成树:C# 生成树的TreeView问题,c#,asp.net,.net,treeview,C#,Asp.net,.net,Treeview,我必须动态地生成树视图,在这里我发现了要在第n级生成的问题 我可以使用以下代码在两个级别生成树: protected void Page_Load(object sender, EventArgs e) { TreeProvider cmsTree = new TreeProvider(MembershipContext.AuthenticatedUser); var node = cmsTree.SelectSingleNode(SiteContext.Curr
protected void Page_Load(object sender, EventArgs e)
{
TreeProvider cmsTree = new TreeProvider(MembershipContext.AuthenticatedUser);
var node = cmsTree.SelectSingleNode(SiteContext.CurrentSiteName, "/", "en-US");
TreeNodeCollection myChildren = node.AllChildren;
IEnumerable<TreeNode> treeNodes = myChildren.AsEnumerable<TreeNode>();
for (int i = 0; i < 3; i++)
{
foreach (var tree in treeNodes.Where(x => x.NodeLevel == i))
{
System.Web.UI.WebControls.TreeNode ParentNode = new System.Web.UI.WebControls.TreeNode();
ParentNode.Text = "Document ID " + tree.DocumentID.ToString() + ". " + tree.DocumentName.ToString() + " Level " + tree.NodeLevel + " Parent " + tree.NodeParentID + " Node ID " + tree.NodeID;
ParentNode.Value = tree.DocumentID.ToString();
AddNodes(ParentNode);
tvContentTree.Nodes.Add(ParentNode);
}
}
}
/// <summary>
/// Adding child for the parent
/// </summary>
/// <param name="tNode"></param>
private void AddNodes(System.Web.UI.WebControls.TreeNode tNode)
{
TreeProvider cmsTree = new TreeProvider(MembershipContext.AuthenticatedUser);
var node = cmsTree.SelectSingleNode(SiteContext.CurrentSiteName, "/", "en-US");
TreeNodeCollection myChildren = node.AllChildren;
IEnumerable<TreeNode> treeNodes = myChildren.AsEnumerable<TreeNode>();
foreach (var tree in treeNodes.Where(x => x.NodeParentID == Convert.ToInt32(tNode.Value)))
{
System.Web.UI.WebControls.TreeNode ChildNode = new System.Web.UI.WebControls.TreeNode();
ChildNode.Text = "Document ID " + tree.DocumentID.ToString() + ". " + tree.DocumentName.ToString() + " Level " + tree.NodeLevel + " Parent " + tree.NodeParentID + " Node ID " + tree.NodeID;
ChildNode.Value = tree.DocumentID.ToString();
tNode.ChildNodes.Add(ChildNode);
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
TreeProvider cmsTree=新的TreeProvider(MembershipContext.AuthenticatedUser);
var node=cmsTree.SelectSingleNode(SiteContext.CurrentSiteName,“/”,“en-US”);
TreeNodeCollection myChildren=node.AllChildren;
IEnumerable treeNodes=myChildren.AsEnumerable();
对于(int i=0;i<3;i++)
{
foreach(树节点中的var树,其中(x=>x.NodeLevel==i))
{
System.Web.UI.WebControls.TreeNode ParentNode=new System.Web.UI.WebControls.TreeNode();
ParentNode.Text=“Document ID”+tree.DocumentID.ToString()+”+tree.DocumentName.ToString()+“Level”+tree.NodeLevel+“Parent”+tree.NodeParentID+“Node ID”+tree.NodeID;
ParentNode.Value=tree.DocumentID.ToString();
AddNodes(ParentNode);
tvContentTree.Nodes.Add(父节点);
}
}
}
///
///为父级添加子级
///
///
私有void AddNodes(System.Web.UI.WebControls.TreeNode tNode)
{
TreeProvider cmsTree=新的TreeProvider(MembershipContext.AuthenticatedUser);
var node=cmsTree.SelectSingleNode(SiteContext.CurrentSiteName,“/”,“en-US”);
TreeNodeCollection myChildren=node.AllChildren;
IEnumerable treeNodes=myChildren.AsEnumerable();
foreach(treeNodes.Where(x=>x.NodeParentID==Convert.ToInt32(tNode.Value))中的var树)
{
System.Web.UI.WebControls.TreeNode ChildNode=new System.Web.UI.WebControls.TreeNode();
ChildNode.Text=“Document ID”+tree.DocumentID.ToString()+”+tree.DocumentName.ToString()+“Level”+tree.NodeLevel+“Parent”+tree.NodeParentID+“Node ID”+tree.NodeID;
ChildNode.Value=tree.DocumentID.ToString();
tNode.ChildNodes.Add(ChildNode);
}
}
我们如何重写代码以生成第n层的树?我自己解决了这个问题
protected void Page_Load(object sender, EventArgs e)
{
TreeProvider cmsTree = new TreeProvider(MembershipContext.AuthenticatedUser);
var node = cmsTree.SelectSingleNode(SiteContext.CurrentSiteName, "/", "en-US");
TreeNodeCollection myChildren = node.AllChildren;
IEnumerable<TreeNode> treeNodes = myChildren.AsEnumerable<TreeNode>();
foreach (var tree in treeNodes.Where(x => x.NodeLevel ==0))
{
System.Web.UI.WebControls.TreeNode ParentNode = new System.Web.UI.WebControls.TreeNode();
ParentNode.Text = "Root";
ParentNode.Value = tree.NodeID.ToString();
AddNodes(ParentNode);
tvContentTree.Nodes.Add(ParentNode);
}
}
/// <summary>
/// Adding child for the parent
/// </summary>
/// <param name="tNode"></param>
private void AddNodes(System.Web.UI.WebControls.TreeNode tNode)
{
TreeProvider cmsTree = new TreeProvider(MembershipContext.AuthenticatedUser);
var node = cmsTree.SelectSingleNode(SiteContext.CurrentSiteName, "/", "en-US");
TreeNodeCollection myChildren = node.AllChildren;
IEnumerable<TreeNode> childTreeNodes = myChildren.AsEnumerable<TreeNode>();
foreach (var childTree in childTreeNodes.Where(x => x.NodeParentID == Convert.ToInt32(tNode.Value)))
{
System.Web.UI.WebControls.TreeNode ChildNode = new System.Web.UI.WebControls.TreeNode();
ChildNode.Text = childTree.DocumentName.ToString();
ChildNode.Value = childTree.NodeID.ToString();
tNode.ChildNodes.Add(ChildNode);
AddNodes(ChildNode);
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
TreeProvider cmsTree=新的TreeProvider(MembershipContext.AuthenticatedUser);
var node=cmsTree.SelectSingleNode(SiteContext.CurrentSiteName,“/”,“en-US”);
TreeNodeCollection myChildren=node.AllChildren;
IEnumerable treeNodes=myChildren.AsEnumerable();
foreach(树节点中的var树,其中(x=>x.NodeLevel==0))
{
System.Web.UI.WebControls.TreeNode ParentNode=new System.Web.UI.WebControls.TreeNode();
ParentNode.Text=“Root”;
ParentNode.Value=tree.NodeID.ToString();
AddNodes(ParentNode);
tvContentTree.Nodes.Add(父节点);
}
}
///
///为父级添加子级
///
///
私有void AddNodes(System.Web.UI.WebControls.TreeNode tNode)
{
TreeProvider cmsTree=新的TreeProvider(MembershipContext.AuthenticatedUser);
var node=cmsTree.SelectSingleNode(SiteContext.CurrentSiteName,“/”,“en-US”);
TreeNodeCollection myChildren=node.AllChildren;
IEnumerable childTreeNodes=myChildren.AsEnumerable();
foreach(childTreeNodes.Where中的var childTree(x=>x.NodeParentID==Convert.ToInt32(tNode.Value)))
{
System.Web.UI.WebControls.TreeNode ChildNode=new System.Web.UI.WebControls.TreeNode();
ChildNode.Text=childTree.DocumentName.ToString();
ChildNode.Value=childTree.NodeID.ToString();
tNode.ChildNodes.Add(ChildNode);
AddNodes(ChildNode);
}
}