How to: Manage The Visibility of Check Boxes
- 2 minutes to read
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; });
}