2013-02-25 15 views
5

Im Master-Seite bestimmten Menüpunkt aus dem Menü Steuerung in asp.net C# -Code deaktivieren:Wie hinter

<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 Berichte und Master-Menüs in Code-Behind deaktivieren möge. Ich muss überprüfen, ob es Admin war oder nicht. Wenn sich der Benutzer im Status admin befindet, bedeutet dies, dass alle Menüeinträge angezeigt werden sollen. Wenn der Benutzer kein Administrator ist, muss ich visible = false für den Bericht und das Hauptmenü festlegen. Bitte hilf mir.

+0

versuchen Sie mit Enabled = "false" -Eigenschaft für Menüeintrag .. – coder

Antwort

2

habe ich die Lösung:

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

Versuchen Sie, wie unten, es wird funktionieren ...

if(UserStatus != "Admin") 
{ 
Menu1.Items.Remove(Menu1.FindItem("Reports")); 
Menu1.Items.Remove(Menu1.FindItem("Master")); 
} 

Wenn Ihr Menü in Master-Seite wird dann wie unten versuchen ...

var menu = Page.Master.FindControl("Menu1") as Menu; 
if (menu != null) 
{ 
menu.Items.Remove(menu.FindItem("Reports")); 
menu.Items.Remove(menu.FindItem("Master")); 
}