TreeNode.Expanded Egenskap

Definition

Hämtar eller anger ett värde som anger om noden expanderas.

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)

Egenskapsvärde

true om noden expanderas, false om noden inte expanderas eller null.

Exempel

Följande kodexempel visar hur du använder Expanded egenskapen för att programmatiskt expandera en nod. Den initierar alla noder med ett djup på en till ett expanderat tillstånd. Observera att när rotnoden expanderas expanderas dess underordnade noder redan. För att det här exemplet ska fungera korrekt måste du kopiera XML-exempeldata nedan till en fil med namnet 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>

Följande kod är XML-exempeldata för föregående exempel.

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

Kommentarer

Använd egenskapen Expanded för att ange eller avgöra om noden expanderas.

Du kan expandera och komprimera en nod genom att anropa Expand metoderna och Collapse . Du kan också expandera och komprimera en nod och alla dess underordnade noder genom att anropa ExpandAll metoderna och CollapseAll .

Eftersom egenskapen Expanded är en tri-state-egenskap orsakar följande C#-kodfragment ett kompileringsfel:

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

Även om VB.Net implicit omvandlar Boolean värdet till en NullableBoolean, gör inte C# det. Därför är det bästa praxis att uttryckligen kontrollera egenskapens tillstånd. Följande kodexempel i Visual Basic och C# testar till exempel uttryckligen värdet för egenskapen Expanded.

I följande Visual Basic kodexempel testas uttryckligen värdet för egenskapen Expanded. I det här exemplet testas Expanded om egenskapen är inställd på True; och Nothing därför False faller igenom -instruktionenIf.

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

I det här C#-kodexemplet testas uttryckligen värdet för Expanded egenskapen. I det här exemplet testas Expanded om egenskapen är inställd på True; och Null därför False faller igenom -instruktionenIf.

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

Gäller för

Se även