TreeNode.Expanded Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het knooppunt is uitgevouwen.

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)

Waarde van eigenschap

true als het knooppunt is uitgevouwen, false als het knooppunt niet is uitgevouwen of null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de Expanded eigenschap gebruikt om een knooppunt programmatisch uit te vouwen. Hiermee initialiseert u alle knooppunten met een diepte van één tot een uitgebreide status. U ziet dat wanneer het hoofdknooppunt wordt uitgevouwen, de onderliggende knooppunten al zijn uitgevouwen. Als dit voorbeeld correct werkt, moet u de voorbeeld-XML-gegevens hieronder kopiëren naar een bestand met de naam 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>

De volgende code bevat voorbeeld-XML-gegevens voor het vorige voorbeeld.

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

Opmerkingen

Gebruik de Expanded eigenschap om op te geven of te bepalen of het knooppunt is uitgevouwen.

U kunt een knooppunt uitvouwen en samenvouwen door respectievelijk de Expand en Collapse methoden aan te roepen. U kunt ook een knooppunt en alle onderliggende knooppunten uitvouwen en samenvouwen door respectievelijk de ExpandAll en CollapseAll methoden aan te roepen.

Omdat de Expanded eigenschap een eigenschap tri-state is, veroorzaakt het volgende C#-codefragment een compileerfout:

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

Hoewel VB.Net impliciet de Boolean waarde naar een NullableBooleancast brengt, doet C# dat niet. Daarom is het een best practice om expliciet de status van de eigenschap te controleren. De volgende codevoorbeelden in Visual Basic en C# testen bijvoorbeeld expliciet de waarde van de eigenschap Expanded.

In het volgende Visual Basic codevoorbeeld wordt de waarde van de eigenschap Expanded expliciet getest. In dit voorbeeld wordt getest of de Expanded eigenschap is ingesteld op True; daarom Nothing en False door de If instructie valt.

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

In dit C#-codevoorbeeld wordt de waarde van de Expanded eigenschap expliciet getest. In dit voorbeeld wordt getest of de Expanded eigenschap is ingesteld op True; daarom Null en False door de If instructie valt.

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

Van toepassing op

Zie ook