TreeNode.ShowCheckBox 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指示是否在节点旁显示一个复选框。
public:
property Nullable<bool> ShowCheckBox { Nullable<bool> get(); void set(Nullable<bool> value); };
public bool? ShowCheckBox { get; set; }
member this.ShowCheckBox : Nullable<bool> with get, set
Public Property ShowCheckBox As Nullable(Of Boolean)
属性值
如果显示复选框,则为 true
;否则为 false
。
示例
下面的代码示例演示如何使用 ShowCheckBox 属性以编程方式显示和隐藏控件中节点的 TreeView 复选框。 若要使此示例正常工作,必须将下面的示例 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, show a check box.
if(e.Node.Depth == 1)
{
e.Node.ShowCheckBox = true;
}
else
{
e.Node.ShowCheckBox = false;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeNode ShowCheckBox Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeNode ShowCheckBox Example</h3>
<asp:TreeView id="BookTreeView"
DataSourceID="BookXmlDataSource"
OnTreeNodeDataBound="Data_Bound"
ShowCheckBoxes="None"
ExpandDepth="2"
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, show a check box.
If e.Node.Depth = 1 Then
e.Node.ShowCheckBox = True
Else
e.Node.ShowCheckBox = False
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeNode ShowCheckBox Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeNode ShowCheckBox Example</h3>
<asp:TreeView id="BookTreeView"
DataSourceID="BookXmlDataSource"
OnTreeNodeDataBound="Data_Bound"
ShowCheckBoxes="None"
ExpandDepth="2"
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>
注解
通过控件 TreeView ,可以在节点的图像旁边显示复选框。 ShowCheckBox使用属性显示或隐藏当前节点的复选框。
ShowCheckBox尽管该属性可用于显示复选框,但使用控件的属性TreeView更为常见TreeView.ShowCheckBoxes。 但是,该 TreeView.ShowCheckBoxes 属性会影响属性指定的每个节点类型;因此,该 TreeNode.ShowCheckBox 属性通常用于替代单个节点的设置。
由于该 TreeView.ShowCheckBoxes 属性是三状态属性,因此以下 C# 代码片段会导致编译错误:
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
if (TreeView1.Nodes[0].Expanded)
{
// some work here
}
}
虽然 VB.Net 隐式将值强制转换为 Boolean
aNullableBoolean
,但 C# 不会。 因此,最好显式检查属性的状态。 例如,Visual Basic和 C# 中的以下代码示例显式测试Expanded属性值。
以下Visual Basic代码示例显式测试属性的值Expanded。 本示例测试该属性是否Expanded设置为 ;因此Nothing
,并False
会经历该If``True
语句。
If TreeView1.Nodes(0).Expanded = True Then 'some work hereEnd IF
此 C# 代码示例显式测试属性的值 Expanded 。 本示例测试该属性是否Expanded设置为 ;因此Null
,并False
会经历该If``True
语句。
if( TreeView1.Nodes[0].Expanded == true ) { //some work here}
此属性的值存储在视图状态中。