TreeNode.Expanded Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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}