2011-05-27 86 views
1

我在Repeater中有一些公司名稱,並且每個公司可能有也可能沒有鏈接。可選的ASP超鏈接

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

如果我設置了NavigateUrl爲null,它仍然呈現HTML中<a>標籤。如果將其設置爲Visible = False,則不會顯示公司名稱。如果沒有NavigateUrl,是否可以刪除HyperLink但保留公司名稱?

回答

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

有幾種方法可以做到這一點。其中之一是使用一個代碼塊

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

建立起來的HTML或者你可以創建一個你可以打電話,然後就建立在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