TreeNode.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)
Значение свойства
true
, если узел раскрыт; в противном случае — false
или null
.
Примеры
В следующем примере кода показано, как использовать Expanded свойство для программного расширения узла. Он инициализирует все узлы с глубиной от одного до расширенного состояния. Обратите внимание, что при развертывании корневого узла его дочерние узлы уже разворачиваются. Чтобы этот пример работал правильно, необходимо скопировать приведенный ниже пример XML-данных в файл с именем 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>
Следующий код представляет собой пример XML-данных для предыдущего примера.
<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>
Комментарии
Используйте свойство , Expanded чтобы указать или определить, развернут ли узел.
Узел можно развернуть и свернуть, вызвав Expand методы и Collapse соответственно. Вы также можете развернуть и свернуть узел и все его дочерние узлы, вызвав ExpandAll методы и CollapseAll соответственно.
Expanded Так как свойство является свойством с три состояниями, следующий фрагмент кода C# вызывает ошибку компиляции:
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
if (TreeView1.Nodes[0].Expanded)
{
// some work here
}
}
Хотя VB.Net неявно приводит Boolean
значение к NullableBoolean
, C# не выполняет. Поэтому рекомендуется явно проверить состояние свойства. Например, в следующих примерах кода в Visual Basic и C# явно проверяется значение Expanded свойства .
В следующем примере кода Visual Basic явно проверяется значение Expanded свойства . В этом примере проверяется, задано ли Expanded для свойства значение True
; следовательно Nothing
, и False
выполняется If
через оператор .
If TreeView1.Nodes(0).Expanded = True Then 'some work hereEnd IF
В этом примере кода C# явно проверяется значение Expanded свойства . В этом примере проверяется, задано ли Expanded для свойства значение True
; следовательно Null
, и False
выполняется If
через оператор .
if( TreeView1.Nodes[0].Expanded == true ) { //some work here}