【问题标题】:Treenode not expanding after removing node删除节点后树节点不扩展
【发布时间】:2017-06-20 10:39:28
【问题描述】:

我试图在扩展节点(父节点)时替换树节点。更换工作正常。但扩张没有发生。你有什么解决办法吗?

代码如下:

 <asp:TreeView ID="tvContentTree" runat="server"  RootNodeStyle-CssClass="RootAllKeys"
            ParentNodeStyle-CssClass="ParentAllKeys" ShowCheckBoxes="All" ImageSet="Simple" NodeIndent="10"  OnTreeNodeExpanded="Populate_Node" >
                <HoverNodeStyle Font-Underline="True" ForeColor="#DD5555" />
                <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="0px" NodeSpacing="0px" VerticalPadding="0px" />
                <ParentNodeStyle Font-Bold="False" />
                <SelectedNodeStyle Font-Underline="True" ForeColor="#DD5555" HorizontalPadding="0px" VerticalPadding="0px" />
            </asp:TreeView>


public void Populate_Node(Object sender, TreeNodeEventArgs e)
    {    
        foreach (System.Web.UI.WebControls.TreeNode tn in tvContentTree.Nodes)
        {
           tn.ChildNodes.RemoveAt(1);
           tn.ChildNodes.AddAt(1,ParentNode);                  
        }
    }

如果我评论该行

"tn.ChildNodes.RemoveAt(1);"

然后扩展工作正常。所以 removeat 函数导致了这个问题。

【问题讨论】:

  • 变量nodeIndex的值是多少?
  • 只是index的数值,以1为例
  • 我从问题中删除了 nodeindex 变量
  • 我猜,AddAt 应该类似于 ;tn.ChildNodes.AddAt(1,ParentNode);
  • 是的,更正了它...

标签: c# asp.net .net vb.net treeview


【解决方案1】:

您应该通过其名称找到该节点,然后将其删除。

TreeNode tn = tvContentTree.FindNode("tn1");
tn.ChildNodes.RemoveAt(1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多