ASP.NET:如何转换<a> or HtmlAnchor to static text?</a>

时间:2008-10-08 19:54:58

标签: asp.net html

我有一个转发器,它将输出一系列项目:

<asp:repeater ... runat="Server">
   <itemtemplate>
      <a href="<%# GetItemLink(...) %>"><%# GetItemText %></a>
   <itemtemplate>
<asp:repeater>

但有些项目没有关联的链接,所以我不希望它们是可点击的。我尝试将其设为runat=server HtmlAnchor,并设置项目的htmlAnchor.Disabled = true实际上不应该有链接 - 但仍然可以点击它们(它只会使文本变为灰色)< / p>

我知道在过去的日子里我是如何做到的:

<% If IsLink Then %>
   <A href="<% =GetItemLink%">
<% End If %>
   <% =GetItemText %>
<% If IsLink Then %>
   </A>
<% End If %>

但那是凌乱的混合代码和HTML ASP方式。什么是ASP.NET方式?

1 个答案:

答案 0 :(得分:10)

使用&lt; asp:HyperLink&gt; control,如果没有提供链接,则正常显示文本。


编辑包含示例:

<asp:repeater ... runat="Server">
   <itemtemplate>
      <asp:HyperLink ... runat="server" NavigateUrl="<%# GetItemLink(...) %>"> <%# GetItemText %></asp:HyperLink>
   <itemtemplate>
<asp:repeater>

在上面的示例中,无论如何,锚标记都将呈现为html,但如果NavigateUrl属性为空字符串,则根本不会有href,我曾经使用的每个浏览器都会呈现文本以类似于跨度的方式(因此请注意&lt; a&gt;的自定义样式)。