Search code examples
telerikradmenu

RadMenu hide submenu


I am using a Radmenu. I like to hide a Submenu item.

The menu looks like following. Note that Car is the main Menu and Dodge, Toyota and Honda are submenus.

Cars - Dodge - Toyota - Honda

I am trying to do something like the following but won't work:

     protected void RadMenu1_ItemCreated(object sender, Telerik.Web.UI.RadMenuEventArgs e)
     {
      if (e.Item is RadMenuItem)
       {

        if (e.Item.Parent != null && e.Item.Parent is RadMenuItem)
        {
            if (e.Item.Menu.FindItemByText("Honda"))
            {
                e.Item.Visible = false;
            }
        }
    }
}

Solution

  • Please try with the below code snippet and let me know if any concern.

    ASPX

    <div>
        <telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager>
        <telerik:RadMenu ID="RadMenu1" runat="server"  OnPreRender="RadMenu1_PreRender">
            <Items>
                <telerik:RadMenuItem Text="cars">
                    <Items>
                        <telerik:RadMenuItem Text="Honda"></telerik:RadMenuItem>
                        <telerik:RadMenuItem Text="Toyota"></telerik:RadMenuItem>
                    </Items>
                </telerik:RadMenuItem>
            </Items>
        </telerik:RadMenu>
    </div>
    

    ASPX.CS

    protected void RadMenu1_PreRender(object sender, EventArgs e)
    {
        foreach (RadMenuItem item in (sender as RadMenu).Items)
        {
            if (item.Items.Count > 0)
            {
                foreach (RadMenuItem citem in item.Items)
                {   
                    if (citem.Text != "Honda")
                    {
                        citem.Visible = false;
                    }
                }
            }
        }
    }
    
    // Hide top menu cars
    protected void RadMenu1_PreRender(object sender, EventArgs e)
    {
    foreach (RadMenuItem item in (sender as RadMenu).Items)
    {
        if (item.Items.Count > 0)
        {
            if(item.Text == "cars")
            {
              item.Visible = false;
            }
            foreach (RadMenuItem citem in item.Items)
            {   
                if (citem.Text != "Honda")
                {
                    citem.Visible = false;
                }
            }
        }
    }
    }