如何在asp.net C#代码隐藏中禁用菜单控件中的特定菜单项
本文关键字:控件 菜单 菜单项 asp net 隐藏 代码 | 更新日期: 2023-09-27 18:01:03
在母版页中:
<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>
我想禁用代码隐藏中的"报告"answers"主菜单"。我必须检查它是否是管理员。如果用户处于admin状态,意味着所有菜单项都应该显示,如果用户不是admin,意味着我必须为报表和主菜单设置visible=false。请帮帮我。
像下面这样尝试它会起作用。。。
if(UserStatus != "Admin")
{
Menu1.Items.Remove(Menu1.FindItem("Reports"));
Menu1.Items.Remove(Menu1.FindItem("Master"));
}
如果您的菜单在母版页中,请尝试如下。。。
var menu = Page.Master.FindControl("Menu1") as Menu;
if (menu != null)
{
menu.Items.Remove(menu.FindItem("Reports"));
menu.Items.Remove(menu.FindItem("Master"));
}
我得到了解决方案:
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);
}
}