加载ASP.NET页面时动态更改标记

时间:2009-11-04 14:48:17

标签: asp.net master-pages

ASP.NET v2

我有MasterPage,其中包含以下行的导航栏:

<ul>
  <li id="current"><a href="overview.aspx">Home</a></li>
  <li><a href="users.aspx">Users</a></li>
  <li><a href="courses.aspx">Courses</a></li>
</ul>

css为列表设置样式,并且需要id =“current”来突出显示当前页面。操作标记的最佳方法是什么,以便在每个页面中为相关列表项指定id =“current”。

2 个答案:

答案 0 :(得分:2)

尝试使用站点地图。实施将非常简单。

看看:http://aspnet.4guysfromrolla.com/articles/111605-1.aspx

答案 1 :(得分:1)

使用站点地图或在Page.prerender方法后面的代码中创建控件。

你的HTML应该是这样的:

<ul>
    <li runat="server" id="navul_home">home</li>
    <li runat="server" id="navul_users">users</li>
    <li runat="server" id="navul_courses">courses</li>
</ul>

代码隐藏应该是:

Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    Dim Currentpage As String = "users"
    navul_home.Attributes.Clear()
    navul_home.Attributes.Clear()
    navul_home.Attributes.Clear()
    Select Case Currentpage
        Case "home"
            navul_home.Attributes.Add("id", "current")
        Case "users"
            navul_users.Attributes.Add("id", "current")
        Case "courses"
            navul_courses.Attributes.Add("id", "current")
    End Select
End Sub