2010-11-04 7 views
3

J'ai une vue d'arbre créé dans mon page HTMLnœud cacher dans le contrôle TreeView

<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> 

maintenant je veux cacher le nœud Stats dans la fonction de chargement de la page dans mon code derrière ....

toutes les suggestions .. merci

Répondre

1

J'utilise Telerik RadTreeView; TreeView n'a pas d'événement DataBound et de propriété Visible pour chaque nœud. Voici le code pour supprimer le nœud enfant pour 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

Définissez le texte de nœud sur "" et il ne sera pas rendu.

+2

Cela ne semble pas fonctionner avec 'System.Windows.Forms.TreeView' - la case à cocher du noeud est toujours restituée. –

0

! [] Voici comment j'ai utilisé.] [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

semble avoir besoin d'explications – boboes

1

Vous pouvez essayer cela, il fonctionne pour feuilles nœuds seulement.

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

TreeView1.Nodes[0].ShowCheckBox = false;

P.S: Vous aurez besoin d'une fonction récursive pour accéder à chaque noeud.