2011-05-27 3 views
1

J'ai quelques noms de sociétés dans un répéteur, et chacune des sociétés peut ou non avoir un lien.ASP Hyperlink optionnel

<asp:HyperLink runat="server" Visible="false"> 
    <asp:Literal runat="server" ID="CompanyName" /> 
</asp:HyperLink> 

Si je mets le NavigateUrl à null, il rend encore la balise <a> dans le code HTML. Si je le mets à Visible = False, il ne rend pas le nom de l'entreprise. Est-il possible de supprimer l'HyperLink mais garder le nom de l'entreprise s'il n'y a pas NavigateUrl?

Répondre

2
<asp:Literal runat="server" Text='<%# Eval("CompanyName") %>' Visible='<%# string.IsNullOrEmpty(Eval("CompanySiteUrl") as string) %>' /> 
<asp:HyperLink runat="server" NavigateUrl='<%# Eval("CompanySiteUrl") %>' Visible='<%# !string.IsNullOrEmpty(Eval("CompanySiteUrl") as string) %>'> 
    <%# Eval("CompanyName") %> 
</asp:HyperLink> 
0

Il existe plusieurs façons de procéder. On serait de construire le code HTML à l'aide d'un bloc de code

<%#IIF(CompanyName <> "", "<a href='" & Eval("CompanySiteUrl") & "'>" & Eval("CompanyName") & "</a>", Eval("CompanyName"))%> 

Ou vous pouvez créer une méthode publique que vous pouvez appeler et puis juste construire le code html dans la méthode

<%#BuildCompanyUrl(Eval("CopmanySiteUrl"), Eval("CompanyName"))%> 

Public Function BuildCompanyUrl(ByVal CompanySiteUrl as string, ByVal Copmanyname as string) As String 
    ' build up the logic here and return the html 
    return "<a href="......." 
End Function