我在Repeater中有一些公司名称,每家公司可能有也可能没有链接。
<asp:HyperLink runat="server" Visible="false">
<asp:Literal runat="server" ID="CompanyName" />
</asp:HyperLink>
如果我将NavigateUrl设置为null,它仍然会在HTML中呈现<a>
标记。如果我将其设置为Visible = False,则不会呈现公司名称。如果没有NavigateUrl,是否可以删除HyperLink但保留公司名称?
答案 0 :(得分: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>
答案 1 :(得分:0)
有几种方法可以做到这一点。一种是使用代码块来构建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