在主页面中禁用特定视图的选项卡

时间:2014-06-10 09:52:16

标签: asp.net master-pages

这是我第一次使用母版页布局。

目前我在菜单中有3个标签:登录/添加/编辑

我希望在“登录”页面(默认页面)上只显示一个选项卡,登录成功后,“登录”选项卡将被禁用(因为用户已经登录)并且启用了“添加/编辑”选项卡。

<asp:Menu ID="LoginMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
    <Items>
        <asp:MenuItem Text="Login" NavigateUrl="login.aspx" />
    </Items>
</asp:Menu>
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
    <Items>
        <asp:MenuItem Text="Add" NavigateUrl="add.aspx" />
        <asp:MenuItem Text="Edit" NavigateUrl="edit.aspx" />
    </Items>
</asp:Menu>

任何想法如何实现?

2 个答案:

答案 0 :(得分:0)

<% if(LoggedIn){ %>   //Here you should check if the user has logged in I just used LoggedIn variable as example.
<asp:Menu ID="LoginMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                <Items>
                    <asp:MenuItem Text="Login" NavigateUrl="login.aspx" />
                      </Items>
            </asp:Menu>
<%} else{%>
<asp:Menu ID="LoginMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                <Items>
                    <asp:MenuItem Text="Logout" NavigateUrl="logout.aspx" />
                      </Items>
            </asp:Menu>
<%}%>

编辑:

或者你可以在else部分设置Enabled="False",或者只删除else。

答案 1 :(得分:0)

您可以使用Web.sitemap和基于安全角色过滤站点地图节点。

类似的东西:

<强>的.aspx

<asp:Menu ID="NavigationMenu" DataSourceID="SiteMapDataSource1"  runat="server" CssClass="menu" EnableViewState="False" IncludeStyleBlock="false" Orientation="Horizontal" StaticDisplayLevels="2">
</asp:Menu>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />

<强> Web.sitemap中

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/login.aspx" title="Login"  description="Login">
        <siteMapNode url="~/loggedin/add.aspx" title="Add"  description="Add" />
         <siteMapNode url="~/loggedin/edit.aspx" title="Edit"  description="Edit" />
    </siteMapNode>
</siteMap>

示例web.config for&#34; loggedin&#34; direcrory

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <authorization>
            <allow roles="AcceptedUserRole" />
            <allow roles="AdministratorRole" />
            <deny users="*" />
        </authorization>
    </system.web>
</configuration>

有关详细说明,请查看LINK