TreeNode.Expanded Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets or sets a value that indicates whether the node is expanded.
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)
Property Value
true
if the node is expanded, false
if the node is not expanded, or null
.
Examples
The following code example demonstrates how to use the Expanded property to programmatically expand a node. It initializes all nodes with a depth of one to an expanded state. Notice that when the root node is expanded, its child nodes are already expanded. For this example to work correctly, you must copy the sample XML data below to a file named 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>
The following code is sample XML data for the previous example.
<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>
Remarks
Use the Expanded property to specify or determine whether the node is expanded.
You can expand and collapse a node by calling the Expand and Collapse methods, respectively. You can also expand and collapse a node and all its child nodes by calling the ExpandAll and CollapseAll methods, respectively.
Since the Expanded property is a tri-state property, the following C# code snippet causes a compile error:
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
if (TreeView1.Nodes[0].Expanded)
{
// some work here
}
}
While VB.Net implicitly casts the Boolean
value to a NullableBoolean
, C# does not. Therefore, it is a best practice to explicitly check the state of the property. For example, the following code examples in Visual Basic and C# explicitly test the value of the Expanded property.
The following Visual Basic code example explicitly tests the value of the Expanded property. This example tests if the Expanded property is set to True
; therefore Nothing
and False
fall through the If
statement.
If TreeView1.Nodes(0).Expanded = True Then 'some work hereEnd IF
This C# code example explicitly tests the value of the Expanded property. This example tests if the Expanded property is set to True
; therefore Null
and False
fall through the If
statement.
if( TreeView1.Nodes[0].Expanded == true ) { //some work here}