Skip to main content
Tab

ASPxTreeView.AllowCheckNodes Property

Gets or sets a value that specifies whether the nodes checking feature is available.

Namespace: DevExpress.Web

Assembly: DevExpress.Web.v23.2.dll

NuGet Package: DevExpress.Web

Declaration

[DefaultValue(false)]
public bool AllowCheckNodes { get; set; }

Property Value

Type Default Description
Boolean false

true if check boxes are available; otherwise, false.

Remarks

The ASPxTreeView allows end-users to check nodes using node check boxes. The AllowCheckNodes property controls the availability of check boxes for all nodes. For individual nodes, the visibility of their check boxes can be specified using the TreeViewNode.AllowCheck property on the node level. A particular node’s check box is enabled if both the control’s AllowCheckNodes and the node’s TreeViewNode.AllowCheck properties are set to true.

Note, that the AllowCheckNodes property doesn’t change a node’s checked status. It only hides/shows check boxes. The checked state of an individual node can be specified using the node’s TreeViewNode.Checked property.

For more information see the Check Box Support topic.

Example

This example demonstrates how you can use the AllowCheckNodes and AllowCheck properties to manage the visibility of check boxes.

<dx:ASPxRadioButtonList ID="ASPxRadioButtonList1" runat="server" 
    AutoPostBack="True" ClientIDMode="AutoID" 
    onselectedindexchanged="ASPxRadioButtonList1_SelectedIndexChanged" 
    SelectedIndex="0">
    <Items>
        <dx:ListEditItem Text="Hide all check boxes" Value="HideAll" />
        <dx:ListEditItem Text="Show check boxes for leaf nodes only" Value="ShowLeaves" />
        <dx:ListEditItem Text="Show all check boxes" Value="Show" />
    </Items>
</dx:ASPxRadioButtonList>

<dx:ASPxTreeView ID="ASPxTreeView1" runat="server" ClientIDMode="AutoID">
    <Nodes>
        <dx:TreeViewNode>
            <Nodes>
                <dx:TreeViewNode>
                    <Nodes>
                        <dx:TreeViewNode />
                        <dx:TreeViewNode />
                    </Nodes>
                </dx:TreeViewNode>
                <dx:TreeViewNode />
            </Nodes>
        </dx:TreeViewNode>
        <dx:TreeViewNode>
            <Nodes>
                <dx:TreeViewNode />
                <dx:TreeViewNode />
                <dx:TreeViewNode />
                <dx:TreeViewNode />
            </Nodes>
        </dx:TreeViewNode>
    </Nodes>
</dx:ASPxTreeView>

<dx:ASPxButton ID="ASPxButton1" runat="server" OnClick="ASPxButton1_Click" Text="Disable checked nodes" />
<dx:ASPxButton ID="ASPxButton2" runat="server" OnClick="ASPxButton2_Click" Text="Enable checked nodes" />
protected void Page_Load(object sender, EventArgs e) {
    if (!IsPostBack) {
        ASPxTreeView1.AllowCheckNodes = !(ASPxRadioButtonList1.SelectedIndex == 0);
        ASPxTreeView1.ExpandAll();
    }
}

protected void ASPxRadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) {
    ASPxRadioButtonList rblOptions = sender as ASPxRadioButtonList;
    switch (rblOptions.SelectedIndex) {
        case 0:
            ASPxTreeView1.AllowCheckNodes = false;
            break;
        case 1:
            ASPxTreeView1.AllowCheckNodes = true;
            PerformActionOnNodesRecursive(ASPxTreeView1.Nodes, delegate(TreeViewNode node) { node.AllowCheck = node.Nodes.Count == 0; });
            break;
        case 2:
            ASPxTreeView1.AllowCheckNodes = true;
            PerformActionOnNodesRecursive(ASPxTreeView1.Nodes, delegate(TreeViewNode node) { node.AllowCheck = true; });
            break;
    }
}

protected void PerformActionOnNodesRecursive(TreeViewNodeCollection nodes, Action<TreeViewNode> action) {
    foreach (TreeViewNode node in nodes) {
        action(node);
        if (node.Nodes.Count > 0)
            PerformActionOnNodesRecursive(node.Nodes, action);
    }
}
protected void ASPxButton1_Click(object sender, EventArgs e) {
    PerformActionOnNodesRecursive(ASPxTreeView1.Nodes, delegate(TreeViewNode node) { node.Enabled = !node.Checked;});
}
protected void ASPxButton2_Click(object sender, EventArgs e) {
    PerformActionOnNodesRecursive(ASPxTreeView1.Nodes, delegate(TreeViewNode node) { node.Enabled = true; });
}
See Also