【问题标题】:Optional ASP Hyperlink可选的 ASP 超链接
【发布时间】:2011-05-27 08:16:20
【问题描述】:

我在中继器中有一些公司名称,每个公司可能有也可能没有链接。

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

如果我将 NavigateUrl 设置为 null,它仍会在 HTML 中呈现 &lt;a&gt; 标记。如果我将它设置为 Visible=False,它不会呈现公司名称。如果没有 NavigateUrl,是否可以删除 HyperLink 但保留公司名称?

【问题讨论】:

    标签: .net asp.net webforms hyperlink


    【解决方案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='" & 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-14
        • 2015-06-16
        • 2013-01-11
        • 1970-01-01
        • 2012-07-05
        • 2016-11-17
        • 1970-01-01
        相关资源
        最近更新 更多