How to disable specific menu item from menu control in asp.net C# code behind

好久不见. 提交于 2020-01-01 10:17:33

问题


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.


回答1:


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"));
}



回答2:


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);
        }
    }


来源:https://stackoverflow.com/questions/15066046/how-to-disable-specific-menu-item-from-menu-control-in-asp-net-c-sharp-code-behi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!