TreeNode.Expanded Propriedade

Definição

Recebe ou define um valor que indica se o nó está expandido.

public:
 property Nullable<bool> Expanded { Nullable<bool> get(); void set(Nullable<bool> value); };
public bool? Expanded { get; set; }
member this.Expanded : Nullable<bool> with get, set
Public Property Expanded As Nullable(Of Boolean)

Valor de Propriedade

true se o nó for expandido, false se o nó não estiver expandido, ou null.

Exemplos

O seguinte exemplo de código demonstra como usar a Expanded propriedade para expandir programaticamente um nó. Inicializa todos os nós com profundidade de um para um estado expandido. Note que, quando o nó raiz é expandido, os seus nós filhos já estão expandidos. Para que este exemplo funcione corretamente, deve copiar os dados XML de exemplo abaixo para um ficheiro chamado Book.xml.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void Data_Bound(Object sender, TreeNodeEventArgs e)
  {

    // Determine the depth of a node as it is bound to data.
    // If the depth is 1, expand the node.
    if(e.Node.Depth == 1)
    {

      e.Node.Expanded = true;

    }
    else
    {

      e.Node.Expanded = false;

    }
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeNode Expanded Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeNode Expanded Example</h3>
    
      <asp:TreeView id="BookTreeView" 
        DataSourceID="BookXmlDataSource"
        OnTreeNodeDataBound="Data_Bound"
        runat="server">
         
        <DataBindings>
          <asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
          <asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
          <asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
        </DataBindings>
         
      </asp:TreeView>
      
      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
    
    </form>
  </body>
</html>

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    Sub Data_Bound(ByVal sender As Object, ByVal e As TreeNodeEventArgs)
        ' Determine the depth of a node as it is bound to data.
        ' If the depth is 1, expand the node.
        If e.Node.Depth = 1 Then
            e.Node.Expanded = True
        Else
            e.Node.Expanded = False
        End If
    End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeNode Expanded Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeNode Expanded Example</h3>
    
      <asp:TreeView id="BookTreeView" 
        DataSourceID="BookXmlDataSource"
        OnTreeNodeDataBound="Data_Bound"
        runat="server">
         
        <DataBindings>
          <asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
          <asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
          <asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
        </DataBindings>
         
      </asp:TreeView>
      
      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
    
    </form>
  </body>
</html>

O código seguinte é um exemplo de dados XML para o exemplo anterior.

<Book Title="Book Title">
    <Chapter Heading="Chapter 1">
        <Section Heading="Section 1">
        </Section>
        <Section Heading="Section 2">
        </Section>
    </Chapter>
    <Chapter Heading="Chapter 2">
        <Section Heading="Section 1">
        </Section>
    </Chapter>
</Book>

Observações

Use a Expanded propriedade para especificar ou determinar se o nó está expandido.

Pode expandir e colapsar um nó chamando os Expand métodos e Collapse , respetivamente. Também pode expandir e colapsar um nó e todos os seus nós filhos chamando os ExpandAll métodos e CollapseAll , respetivamente.

Como a Expanded propriedade é uma propriedade tri-state, o seguinte excerto de código C# causa um erro de compilação:

protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
if (TreeView1.Nodes[0].Expanded)
{
// some work here
}
}

Embora VB.Net implicitamente conjure o Boolean valor para NullableBooleanum , C# não o faz. Por isso, é uma boa prática verificar explicitamente o estado da propriedade. Por exemplo, os seguintes exemplos de código em Visual Basic e C# testam explicitamente o valor da propriedade Expanded.

O seguinte exemplo de código Visual Basic testa explicitamente o valor da propriedade Expanded. Este exemplo testa se a Expanded propriedade está definida como True; portanto Nothing e False caem através da If afirmação.

If TreeView1.Nodes(0).Expanded = True Then 'some work hereEnd IF

Este exemplo de código C# testa explicitamente o valor da Expanded propriedade. Este exemplo testa se a Expanded propriedade está definida como True; portanto Null e False caem através da If afirmação.

if( TreeView1.Nodes[0].Expanded == true ) { //some work here}

Aplica-se a

Ver também