ASP.NET: Как преобразовать <A>или HtmlAnchor в статический текст? - PullRequest
4 голосов
/ 08 октября 2008

У меня есть повторитель, который будет выводить ряд элементов:

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

Но некоторые элементы не будут иметь связанной ссылки, поэтому я не хочу, чтобы они были кликабельными. я попытался сделать его runat=server HtmlAnchor, и установить htmlAnchor.Disabled = true для элементов, которые на самом деле не должны иметь ссылку - но они все равно могут быть нажаты (просто текст становится серым)

я знаю, как бы я это делал в старину:

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

Но это грязный код смешивания и HTML-способ ASP. Что такое ASP.NET?

1 Ответ

10 голосов
/ 08 октября 2008

Используйте элемент управления , который обычно отображает текст, если ссылка не указана.


Отредактировано, чтобы включить пример:

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

В приведенном выше примере тег привязки будет отображаться в html независимо от того, но если атрибут NavigateUrl является пустой строкой, href вообще не будет, и каждый браузер, который я когда-либо использовал, отображает текст в манера, похожая на span (так что обратите внимание на пользовательские стили в ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...