【问题标题】:Dynamically alter markup when loading an ASP.NET page加载 ASP.NET 页面时动态更改标记
【发布时间】:2009-11-04 14:48:16
【问题描述】:

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"。

【问题讨论】:

    标签: asp.net master-pages


    【解决方案1】:

    试试坐地图。实施将非常容易。

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

    【讨论】:

    • 我没有使用这条路线,但对其他人来说是一个可行的选择
    【解决方案2】:

    要么使用站点地图,要么在 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
    

    【讨论】:

    • li 元素的 id 为 navul_home 等。如何在代码隐藏中引用这些元素?在示例代码中,您有一个名为 navul_home 的变量,但没有此名称的变量,您如何获得对 html 中 id 的引用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多