Опциональная гиперссылка ASP - PullRequest
1 голос
/ 27 мая 2011

У меня есть несколько названий компаний в Repeater, и каждая из компаний может иметь или не иметь ссылку.

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

Если я установлю NavigateUrl на ноль, он все равно будет отображать тег <a> в HTML. Если установить значение Visible = False, название компании не будет отображаться. Можно ли удалить HyperLink, но сохранить название компании, если NavigateUrl отсутствует?

Ответы [ 2 ]

2 голосов
/ 27 мая 2011
<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 голосов
/ 27 мая 2011

Есть несколько способов сделать это.Один из них - создать HTML-код, используя блок кода

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

. Или вы можете создать открытый метод, который можно вызывать, а затем просто создать HTML-код в методе

<%#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
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...