0
ツリービューを動的に生成する必要があります。ここでは、n番目のレベルで生成する問題が見つかります。TreeViewツリーの生成
私は、次のコードを使用して2つのレベルでツリーを生成することがありました:私たちは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>();
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);
}
}
?