TreeNode.Expanded Vlastnost

Definice

Získá nebo nastaví hodnotu, která označuje, zda je uzel rozbalený.

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)

Hodnota vlastnosti

Nullable<Boolean>

true pokud je uzel rozbalený, false pokud uzel není rozbalený nebo null.

Příklady

Následující příklad kódu ukazuje, jak použít Expanded vlastnost k programovému rozšíření uzlu. Inicializuje všechny uzly s hloubkou jednoho do rozšířeného stavu. Všimněte si, že když se kořenový uzel rozbalí, jeho podřízené uzly se už rozbalí. Aby tento příklad fungoval správně, musíte zkopírovat ukázková data XML níže do souboru s názvem 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>

Následující kód je ukázková data XML pro předchozí příklad.

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

Poznámky

Expanded Pomocí vlastnosti určete nebo určete, zda je uzel rozbalený.

Uzel můžete rozbalit a sbalit voláním Expand metod a Collapse metod. Můžete také rozbalit a sbalit uzel a všechny jeho podřízené uzly voláním ExpandAll a CollapseAll metodami.

Vzhledem k tomu, že Expanded vlastnost je tri-state vlastnost, následující fragment kódu V# způsobí chybu kompilace:

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

Zatímco VB.Net implicitně přetypuje Boolean hodnotu na NullableBoolean, C# ne. Proto je osvědčeným postupem explicitně zkontrolovat stav vlastnosti. Například následující příklady kódu v Visual Basic a C# explicitně otestují hodnotu Expanded vlastnosti.

Následující Visual Basic příklad kódu explicitně otestuje hodnotu Expanded vlastnosti. Tento příklad testuje, pokud Expanded je vlastnost nastavena na True; a False proto Nothing propadne příkazemIf.

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

Tento příklad kódu jazyka C# explicitně testuje hodnotu Expanded vlastnosti. Tento příklad testuje, pokud Expanded je vlastnost nastavena na True; a False proto Null propadne příkazemIf.

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

Platí pro

Viz také