当前位置 : 主页 > 网络编程 > ASP >

ASP.NET C#使用列表导航如何在活动导航页面上设置id =“current”?

来源:互联网 收集:自由互联 发布时间:2021-06-24
我还在学习asp.net,想知道是否有一种简单的方法可以将id =“current”设置到导航栏,这样根据用户所在的页面,它就会突出显示该页面.我的模板设置为使用id =“current”来改变链接的样式
我还在学习asp.net,想知道是否有一种简单的方法可以将id =“current”设置到导航栏,这样根据用户所在的页面,它就会突出显示该页面.我的模板设置为使用id =“current”来改变链接的样式,我有一个类来设置每个选项卡的样式.

这是我的Site.Master中的代码

<nav id="navigation" class="style-1">

<div class="left-corner"></div>
<div class="right-corner"></div>

<ul class="menu" id="responsive">

    <li><a href="home.aspx" id="current"><i class="home"></i> Home</a></li>

    <li><a href="Calendar.aspx"><i class="calendar"></i>Calendar</a></li>

    <li><a href="Bill.aspx"><i class="list"></i>Bills</a></li>

</ul>
</nav>

就像我说的那样,我还在学习,所以我不确定将它放在ContentPlaceHolder中是否更好.我试图只是请求URL并执行if语句,但我不知道如何设置id =.

任何帮助都会很棒.

谢谢

您应该考虑设置菜单项的类而不是id,以便将其显示为突出显示.

你可以这样做.
为每个链接添加一个id和runat =“server”:

<li><a href="home.aspx" id="HomeLink" runat="server"><i class="home"></i> Home</a></li>
<li><a href="Calendar.aspx" id="CalendarLink" runat="server"><i class="calendar"></i>Calendar</a></li>
<li><a href="Bill.aspx" id="BillLink" runat="server"><i class="list"></i>Bills</a></li>

然后在您的母版页的代码隐藏中,您可以在导航到每个类时将它们设置为:

protected void Page_Load(object sender, EventArgs e)
{
    SetCurrentPage();
}

private void SetCurrentPage()
{
    var pageName = GetPageName();

    switch (pageName)
    {
        case "home.aspx":
            HomeLink.Attributes["class"] = "current";
            break;
        case "Calendar.aspx":
            CalendarLink.Attributes["class"] = "current";
            break;
        case "Bill.aspx":
            BillLink.Attributes["class"] = "current";
            break;
    }
}

private string GetPageName()
{
    return Request.Url.ToString().Split('/').Last();
}

这会将与当前页面匹配的链接类设置为当前页面.当然,您需要在样式表中定义该类.但这应该有效.

网友评论