TreeNode.ShowCheckBox 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 a check box is displayed next to the node.
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)
Property Value
true
to display the check box; otherwise, false
.
Examples
The following code example demonstrates how to use the ShowCheckBox property to programmatically show and hide the check box for a node in the TreeView control. 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, 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>
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
The TreeView control allows you to display a check box next to a node's image. Use the ShowCheckBox property to show or hide the check box for the current node.
Although the ShowCheckBox property can be used to display check boxes, it is more common to use the TreeView.ShowCheckBoxes property of the TreeView control. The TreeView.ShowCheckBoxes property, however, affects every node type specified by the property; therefore, the TreeNode.ShowCheckBox property is often used to override that setting for an individual node.
Since the TreeView.ShowCheckBoxes 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}
The value of this property is stored in view state.