C# Treeview未作为子级正确添加
我有下面的代码来扩展树节点,将children添加到其父节点,直到第n级 问题:子级总是添加到第一级,而应该一直添加到第n级,添加到相应的父级 代码如下: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
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。好的,我通过自己添加和删除节点解决了上述问题,现在问题只是扩展节点,它在下面的线程上运行