2008-10-08 2 views
4

i ont un répéteur qui sortie une série d'éléments:ASP.NET: Comment convertir <A> ou HtmlAnchor en texte statique?

<asp:repeater ... runat="Server"> 
    <itemtemplate> 
     <a href="<%# GetItemLink(...) %>"><%# GetItemText %></a> 
    <itemtemplate> 
<asp:repeater> 

Mais certains éléments ne seront pas avoir un lien associé, donc je ne veux pas qu'ils soient cliquables. J'ai essayé de faire un runat=serverHtmlAnchor, et définissez le htmlAnchor.Disabled = true pour les articles sont devraient pas en fait un lien - mais ils peuvent encore être cliqué (il est tout simplement le gris texte)

je sais comment je ferais en les anciens jours:

<% If IsLink Then %> 
    <A href="<% =GetItemLink%"> 
<% End If %> 
    <% =GetItemText %> 
<% If IsLink Then %> 
    </A> 
<% End If %> 

Mais c'est le code de mélange désordonné et la manière ASP html. Quelle est la méthode ASP.NET?

Répondre

10

Utilisez un contrôle < asp: HyperLink>, qui affiche le texte normalement si aucun lien n'est fourni.


Edité pour inclure par exemple:

<asp:repeater ... runat="Server"> 
    <itemtemplate> 
     <asp:HyperLink ... runat="server" NavigateUrl="<%# GetItemLink(...) %>"> <%# GetItemText %></asp:HyperLink> 
    <itemtemplate> 
<asp:repeater> 

Dans l'exemple ci-dessus, la balise d'ancrage sera rendu au format html, peu importe, mais si l'attribut NavigateUrl est une chaîne vide, il n'y aura pas href à tous les navigateurs que j'ai jamais utilisés rendent le texte d'une manière similaire aux intervalles (donc cherchez des styles personnalisés sur < a>).

Questions connexes