ASP.NET Masterpage导航当前页面Css

时间:2015-08-07 07:33:14

标签: html css asp.net master-pages nav

我正在尝试根据当前显示的页面在我的导航栏中设置LinkBut​​ton的背景颜色。如果在那个页面上,我希望它是橙色的,如果不是,则为黑色。

我现在有这个:

<nav>
    <asp:LinkButton ID="lnkB1TSUser" runat="server" OnClick="lnkB1TSUser_Click">B1TS User</asp:LinkButton>
    <asp:LinkButton ID="lnkClient" runat="server" OnClick="lnkClient_Click">Client</asp:LinkButton>
    <asp:LinkButton ID="lnkUserClient" runat="server" OnClick="lnkUserClient_Click">User Client</asp:LinkButton>
</nav>

我知道如何一般地使用CSS,但我不知道如何设置我所拥有的特定页面以获得背景。

如果我使两个CSS类处于活动状态和非活动状态:

.active {
  background-color: orange;
}
.inactive {
  background-color: black;
}

这会帮助我实现这个吗?如果我能突出(橙色)我积极参与的页面,那真是太棒了。我不知道如何使用母版页做到这一点。非常感谢帮助。

目前,onclick事件仅用于在页面之间导航。

1 个答案:

答案 0 :(得分:1)

我不是在代码中添加样式的忠实粉丝,但我认为除了使用服务器端代码或Javascript之外别无选择。以下是如何使用C#服务器端代码执行此操作,使用LinkButton&#39; CommandArgument来存储页面的名称:

<nav>
    <asp:LinkButton CommandArgument="page.aspx" ID="lnkB1TSUser" runat="server" OnClick="lnkB1TSUser_Click">B1TS User</asp:LinkButton>
    <asp:LinkButton CommandArgument="page2.aspx" ID="lnkClient" runat="server" OnClick="lnkClient_Click">Client</asp:LinkButton>
    <asp:LinkButton CommandArgument="page3.aspx" ID="lnkUserClient" runat="server" OnClick="lnkUserClient_Click">User Client</asp:LinkButton>
</nav>
<%
    foreach(var control in new LinkButton[] { lnkB1TSUser, lnkClient, lnkUserClient })
    {
        if (HttpContext.Current.Request.Url.AbsolutePath.EndsWith(control.CommandArgument))
            control.ForeColor = System.Drawing.Color.Orange;
    }
%>