How to disable specific menu item from menu control in asp.net C# code behind
29,438
Solution 1
I got the solution:
protected void Page_Load(object sender, EventArgs e)
{
if (strAdmin == "False")
{
MenuItem mnuItem = Menu1.FindItem("Reports"); // Find particular item
Menu1.Items.Remove(mnuItem);
MenuItem mnuItem1 = Menu1.FindItem("Master"); // Find particular item
Menu1.Items.Remove(mnuItem1);
Menu1.Width = Unit.Percentage(30);
}
}
Solution 2
Try like below it will work...
if(UserStatus != "Admin")
{
Menu1.Items.Remove(Menu1.FindItem("Reports"));
Menu1.Items.Remove(Menu1.FindItem("Master"));
}
If your menu is in Master Page Then try like below...
var menu = Page.Master.FindControl("Menu1") as Menu;
if (menu != null)
{
menu.Items.Remove(menu.FindItem("Reports"));
menu.Items.Remove(menu.FindItem("Master"));
}
Author by
Ayyappan Sekaran
Updated on February 26, 2020Comments
-
Ayyappan Sekaran about 4 years
In Master Page:
<asp:Menu ID="Menu1" runat="server" Orientation="Horizontal" Width="60%" BackColor="#336699" Font-Bold="True" ForeColor="White"> <StaticMenuStyle BackColor="#336699" /> <StaticSelectedStyle BackColor="#336699" /> <StaticMenuItemStyle BackColor="#336699" /> <DynamicHoverStyle BackColor="#336699" /> <DynamicMenuStyle BackColor="#336699" /> <DynamicMenuItemStyle BackColor="#336699" /> <StaticHoverStyle BackColor="#336699" /> <Items> <asp:MenuItem Text="Dashboard" NavigateUrl="~/Timecard/Dashboard.aspx"> </asp:MenuItem> <asp:MenuItem Text="Timecard" NavigateUrl="~/Timecard/TimeCardEntry.aspx"> </asp:MenuItem> <asp:MenuItem Text="Reports"> <asp:MenuItem Text="Employee Time card Report" NavigateUrl="~/Reports/Employee_Timecard .aspx"></asp:MenuItem> <asp:MenuItem Text="Employee Leave Detail Report" NavigateUrl="~/Reports/Employee Leave Details.aspx"></asp:MenuItem> <asp:MenuItem Text="Project wise Report" NavigateUrl="~/Reports/ProjectWise.aspx"></asp:MenuItem> </asp:MenuItem> <asp:MenuItem Text="Master"> <asp:MenuItem Text="Company" NavigateUrl="~/Admin/CompanyList.aspx"></asp:MenuItem> <asp:MenuItem Text="Designation" NavigateUrl="~/Admin/DesignationList.aspx"></asp:MenuItem> <asp:MenuItem Text="Task" NavigateUrl="~/Admin/TaskList.aspx"></asp:MenuItem> <asp:MenuItem Text="Project" NavigateUrl="~/Admin/ProjectList.aspx"></asp:MenuItem> <asp:MenuItem Text="Employee" NavigateUrl="~/Admin/EmployeeList.aspx"></asp:MenuItem> <asp:MenuItem Text="Employee Transfer/Promotion" NavigateUrl="~/Admin/EmployeeTransferList.aspx"></asp:MenuItem> <asp:MenuItem Text="Holiday" NavigateUrl="~/Admin/HolidayList.aspx"></asp:MenuItem> </asp:MenuItem> </Items> </asp:Menu>
I want to disable Reports and Master menus in codebehind. I have to check that it was admin or not. if user is in status admin means all menu items should display, if user is not an admin means i have to set visible=false for report and master menu. Please help me.