C# Treeview未作为子级正确添加

C# Treeview未作为子级正确添加,c#,asp.net,.net,vb.net,treeview,C#,Asp.net,.net,Vb.net,Treeview,我有下面的代码来扩展树节点,将children添加到其父节点,直到第n级 问题:子级总是添加到第一级,而应该一直添加到第n级,添加到相应的父级 代码如下: public void Populate_Node(Object sender, TreeNodeEventArgs e) { // Authenticating TreeProvider cmsTree = new TreeProvider(MembershipContext.AuthenticatedU

我有下面的代码来扩展树节点,将children添加到其父节点,直到第n级

问题:子级总是添加到第一级,而应该一直添加到第n级,添加到相应的父级

代码如下:

public void Populate_Node(Object sender, TreeNodeEventArgs e)
{


        // Authenticating
        TreeProvider cmsTree = new TreeProvider(MembershipContext.AuthenticatedUser);
        //selecting the expanding node
        var node = cmsTree.SelectSingleNode(SiteContext.CurrentSiteName, "/Level1-2ndItem", "en-US");
        CMS.DocumentEngine.TreeNodeCollection myChildren = node.AllChildren;

        //Making array of child treenodes  of selected node
        IEnumerable<CMS.DocumentEngine.TreeNode> TreeNodes = myChildren.AsEnumerable<CMS.DocumentEngine.TreeNode>();
        foreach (var tree in myChildren)
        {
            System.Web.UI.WebControls.TreeNode ParenTreeNode = new System.Web.UI.WebControls.TreeNode();
            ParenTreeNode.Text = tree.NodeID.ToString() + ". " + SiteContext.CurrentSiteName;
            ParenTreeNode.Value = tree.NodeID.ToString();
            AddExpandedNodes(ParenTreeNode);

        }

}

private void AddExpandedNodes(System.Web.UI.WebControls.TreeNode TreeNode)
{  
    CMS.DocumentEngine.TreeProvider cmsTree = new CMS.DocumentEngine.TreeProvider(CMS.Membership.MembershipContext.AuthenticatedUser);
    var node = cmsTree.SelectSingleNode(CMS.SiteProvider.SiteContext.CurrentSiteName, "/", "en-US");
    CMS.DocumentEngine.TreeNodeCollection myChildren = node.AllChildren;
    IEnumerable<CMS.DocumentEngine.TreeNode> childTreeNodes = myChildren.AsEnumerable<CMS.DocumentEngine.TreeNode>().Where(x => x.NodeParentID == Convert.ToInt32(TreeNode.Value));
    foreach (var childTree in childTreeNodes)
    {
        System.Web.UI.WebControls.TreeNode ChildNode = new System.Web.UI.WebControls.TreeNode();
        ChildNode.Text = childTree.NodeID.ToString() + ". " + childTree.DocumentName.ToString();
        ChildNode.Value = childTree.NodeID.ToString();      
        ChildNode.ChildNodes.Add(ChildNode);

        AddExpandedNodes(ChildNode);
        tvContentTree.Nodes.Add(ChildNode);
    }      
}
public void Populate_节点(对象发送方,TreeNodeEventArgs e)
{
//鉴定
TreeProvider cmsTree=新的TreeProvider(MembershipContext.AuthenticatedUser);
//选择展开节点
var node=cmsTree.SelectSingleNode(SiteContext.CurrentSiteName,“/Level1-2ndItem”,“en-US”);
CMS.DocumentEngine.TreeNodeCollection myChildren=node.AllChildren;
//生成所选节点的子树节点数组
IEnumerable TreeNodes=myChildren.AsEnumerable();
foreach(myChildren中的var树)
{
System.Web.UI.WebControls.TreeNode ParenTreeNode=new System.Web.UI.WebControls.TreeNode();
ParenTreeNode.Text=tree.NodeID.ToString()+“+”+SiteContext.CurrentSiteName;
ParenTreeNode.Value=tree.NodeID.ToString();
AddExpandedNodes(父重节点);
}
}
专用无效添加扩展节点(System.Web.UI.WebControl.TreeNode TreeNode)
{  
CMS.DocumentEngine.TreeProvider cmsTree=新的CMS.DocumentEngine.TreeProvider(CMS.Membership.MembershipContext.AuthenticatedUser);
var node=cmsTree.SelectSingleNode(CMS.SiteProvider.SiteContext.CurrentSiteName,“/”,“en-US”);
CMS.DocumentEngine.TreeNodeCollection myChildren=node.AllChildren;
IEnumerable childTreeNodes=myChildren.AsEnumerable()。其中(x=>x.NodeParentID==Convert.ToInt32(TreeNode.Value));
foreach(childTreeNodes中的var childTree)
{
System.Web.UI.WebControls.TreeNode ChildNode=new System.Web.UI.WebControls.TreeNode();
ChildNode.Text=childTree.NodeID.ToString()+““+childTree.DocumentName.ToString();
ChildNode.Value=childTree.NodeID.ToString();
ChildNode.ChildNodes.Add(ChildNode);
AddExpandedNodes(子节点);
tvContentTree.Nodes.Add(ChildNode);
}      
}

addNodeExpand
addExpandedNode
是否相同?如果没有,你能分享
AddNodesExpand
的代码吗?它是相同的…类型我也看到了你的另一个与TreeView相关的问题。与其让树死掉,不如操纵数据源并重新绑定控件。就我的$0.02。好的,我通过自己添加和删除节点解决了上述问题,现在问题只是扩展节点,它在下面的线程上运行