Skip to main content

How to: Prohibit Collapsing Nodes

The sample code below represents an ExpandedChanging event handler. The event handler prevents collapsing nodes if it has selected children in any generation.

<dx:ASPxTreeView ID="ASPxTreeView1" runat="server" DataSourceID="XmlDataSource1" AutoPostBack="True" 
    AllowSelectNode="True" OnExpandedChanging="ASPxTreeView1_ExpandedChanging" />
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/App_Data/MenuTabbedMenu.xml"
    XPath="/mainmenu/item"></asp:XmlDataSource>
protected void ASPxTreeView1_ExpandedChanging(object source, DevExpress.Web.ASPxTreeView.TreeViewNodeCancelEventArgs e) {
    if ((e.Node.Expanded) && (ASPxTreeView1.SelectedNode != null)) {
        TreeViewNode  node = ASPxTreeView1.SelectedNode.Parent;
        while (node != null) {
            if (e.Node == node) {
                e.Cancel = true;
                break;
            }
            node = node.Parent;
        }
    }
}