2010-11-04 185 views
3

我在HTML頁面中創建一個樹視圖隱藏節點

<asp:TreeView ID="TreeView1" runat="server" 
      onselectednodechanged="TreeView1_SelectedNodeChanged" 
      PopulateNodesFromClient="False" onunload="TreeView1_Unload"> 
      <Nodes> 

       <asp:TreeNode Text="Reports" Value="Report"> 

       <asp:TreeNode Text="Status" Value="Service"> 
        </asp:TreeNode> 

        <asp:TreeNode Text="Status" Value="Status"> 
        </asp:TreeNode> 

        <asp:TreeNode Text="Stats" 
         Value="Stats"></asp:TreeNode> 

       </asp:TreeNode> 
      </Nodes> 
     </asp:TreeView> 

現在我想隱藏在背後我的代碼的頁面加載功能的統計節點....

任何建議..謝謝

回答

1

我使用Telerik RadTreeView; TreeView沒有每個節點的DataBound事件和Visible屬性。這裏是刪除TreeView的子節點的代碼。

protected void Page_Load(object sender, EventArgs e) 
{ 
    RemoveNodeRecurrently(TreeView1.Nodes, "Status"); 
} 

private void RemoveNodeRecurrently(TreeNodeCollection childNodeCollection, string text) 
{ 
    foreach (TreeNode childNode in childNodeCollection) 
    { 
    if (childNode.ChildNodes.Count > 0) 
     RemoveNodeRecurrently(childNode.ChildNodes, text); 

    if (childNode.Text == text) 
    { 
     TreeNode parentNode = childNode.Parent; 
     parentNode.ChildNodes.Remove(childNode); 
     break; 
    } 
    } 
} 
0

設置節點文本爲「」,它將不會呈現。

+2

這似乎不適用於'System.Windows.Forms.TreeView' - 節點的複選框仍然呈現。 – 2013-03-25 11:19:22

0

![這就是我用過的。] [1]

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Session["type"] == null) 
     { 
      RemoveNodeRecurrently(rptTree.Nodes, "Create Users"); 
     } 

     if (Session["user"] != null) 
     { 
     } 
     else 
     { 
      Response.Redirect(ConfigurationManager.AppSettings.Get("RootFolder") + "/ERP - Login.aspx"); 
     } 
    } 

    private void RemoveNodeRecurrently(TreeNodeCollection childNodeCollection, string text) 
    { 
     foreach (TreeNode childNode in childNodeCollection) 
     { 
      if (childNode.ChildNodes.Count > 0) 
       RemoveNodeRecurrently(childNode.ChildNodes, text); 

      if (childNode.Text == text) 
      { 
       TreeNode parentNode = childNode.Parent; 
       parentNode.ChildNodes.Remove(childNode); 
       break; 
      } 
     } 
    } 
+0

似乎需要一些解釋 – boboes 2016-04-30 10:51:24

1

你可以試試這個,它適用於只有葉節點。

TreeView1.Nodes[0].Text = "";

TreeView1.Nodes[0].ShowCheckBox = false;

P.S:您需要一個遞歸函數來訪問每個節點。