#.net #asp.net #webforms #hyperlink
#.net #asp.net #веб-формы #гиперссылка
Вопрос:
У меня есть названия нескольких компаний в Репитере, и у каждой из компаний может быть, а может и не быть ссылки.
<asp:HyperLink runat="server" Visible="false">
<asp:Literal runat="server" ID="CompanyName" />
</asp:HyperLink>
Если я установлю для NavigateUrl значение null, он по-прежнему будет отображать <a>
тег в HTML. Если я установлю для него значение Visible= False, оно не отобразит название компании. Можно ли удалить гиперссылку, но сохранить название компании, если нет NavigateUrl?
Ответ №1:
<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>
Ответ №2:
Есть несколько способов, которыми вы могли бы это сделать. Одним из них было бы создание html с использованием блока кода
<%#IIF(CompanyName <> "", "<a href='" amp; Eval("CompanySiteUrl") amp; "'>" amp; Eval("CompanyName") amp; "</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