2009-11-04 5 views
1

ASP.NET v2modifier dynamiquement le balisage lors du chargement d'une page ASP.NET

Je MasterPage qui comprend la barre de navigation pour le site le long des lignes de:

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

Les styles css la liste et id = "current" est requis pour surligner la page en cours. Quel est le meilleur moyen de manipuler le balisage de sorte que l'élément de liste pertinent ait pour id = "current" dans chaque page.

Répondre

1

Soit un sitemap ou créez le contrôle dans votre code derrière dans la méthode Page.prerender.

Votre html devrait ressembler à ceci:

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

Et le codebehind devrait être:

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 
+0

Les éléments li ont un id de navul_home etc. Comment ceux-ci peuvent-ils être référencés dans le codebehind? Dans l'exemple de code, vous avez une variable appelée navul_home mais il n'y a pas de variable avec ce nom, comment obtenez-vous une référence à l'id dans le HTML –

Questions connexes