menuitem中的条件语句

时间:2015-01-28 01:33:07

标签: asp.net vb.net conditional menuitem

请原谅我对我的问题的无知,我18年来一直是CF开发人员,但我现在有一个项目,我第一次在asp.net VB上工作。

我需要在menuitem中做一个条件,以便根据用户角色(管理员,协调员,讲师,学习者)显示菜单链接。

最好的方法是什么?以下是菜单代码。括号中的文字显示条件。

 <asp:Menu ID="MyMenu" runat="server" DynamichorizonalOffset="2"
                            ForeColor="#000E8F" StaticSubMenuIndent="10px" Width="50%" CssClass="verticalmenu" 
                                        Font-Size="11pt" OnMenuItemClick="MyMenu_MenuItemClick">
                            <DynamicMenuStyle CssClass="IE8Fix" verticalPadding="2px" />
                            <DynamicMenuItemStyle CssClass="horizonalmenu" VerticalPadding="5px" />
                            <StaticMenuItemStyle verticalPadding="2px" ItemSpacing="2px" 
                                CssClass="horizonalmenu" />
                            <StaticHoverStyle ForeColor="#7D00B6" />
                                        <Items>
                                            <asp:MenuItem Text="Home" Value="Home" NavigateUrl="~/Accounts/Menu.aspx"></asp:MenuItem>
                                            <asp:MenuItem Text="Search/Register for Classes" Value="Search/Register for Classes" NavigateUrl="~/Registration/SearchCourses.aspx" ></asp:MenuItem>
                                            <asp:MenuItem Text="Transcript [For Learner Only]" Value="Transcript"  NavigateUrl="~/InserviceHistory/InserviceTranscript.aspx"></asp:MenuItem>
                                            <asp:MenuItem Text="Request for In-Service Credit [For Learner Only]" Value="My Menu" NavigateUrl="~/InserviceCredit/IndividualRequest/InstructionalIndividualCreditRequest.aspx"></asp:MenuItem>
                                            <asp:MenuItem Text="Users [Admin, Coord, Instr]" Value="My Menu">
<asp:MenuItem Text="Administrator [Admin only]" Value="My Menu">
                                            <asp:MenuItem Text="Add" Value="My Menu"></asp:MenuItem>
                                            <asp:MenuItem Text="Edit" Value="My Menu"></asp:MenuItem>
                                            <asp:MenuItem Text="Delete" Value="My Menu"></asp:MenuItem></asp:MenuItem>
                                            <asp:MenuItem Text="Coordinators [Admin and Coord only]" Value="My Menu">
                                            <asp:MenuItem Text="Add" Value="My Menu"></asp:MenuItem>
                                            <asp:MenuItem Text="Edit" Value="My Menu"></asp:MenuItem>
                                            <asp:MenuItem Text="Delete" Value="My Menu"></asp:MenuItem></asp:MenuItem>
 </Items>
                                    </asp:Menu>

我找到了两种做条件的方法但又不知道如何合并它们,这些是我找到的例子(不是我的菜单示例编码):

                                    ----Example 1 -----
                                <%     Dim count As Integer = 0
        Dim message As String 

        If count = 0 Then
            message = "There are no items." 
        ElseIf count = 1 Then
            message = "There is 1 item." 
        Else
            message = "There are " & count & " items." 
                                    End If
                                    %>

                                    ----Example 2 ------

                                      <%
if(1==1)
{%>

html code

<% } 
else 
{
%>
NOt 1
<% } %>

1 个答案:

答案 0 :(得分:0)

您无需手动进行有条件处理。如果您想要自动安全修整,则需要使用web.sitemap填充菜单。

请参阅Walkthrough: Filtering Site-Map Nodes Based on Security Roles

  

角色是一组用户的名称。建立角色后,您可以将单个用户帐户分配给角色。您可以根据角色限制对站点地图中的Web文件和节点的访问。

阅读SiteMapProvider.SecurityTrimmingEnabled财产。

  

获取一个布尔值,指示站点地图提供程序是否根据用户的角色过滤站点地图节点。

例如,如果您想限制对Admin文件夹的访问,您可以在Admin文件夹Web.Config文件中添加这样的内容,以限制除具有角色管理员的用户以外的所有用户。

<configuration>
   <system.web>
      <authorization>
        <allow roles="Administrator"/>
        <deny users="*"/>
      </authorization>
   </system.web>
</configuration>