Тройной встроенный ASP.NET в контроллере Repeater - PullRequest
1 голос
/ 10 августа 2011

Представьте, что у меня есть кнопка ссылки "readMore" в ItemTemplate ретранслятора, и я хочу установить для нее display: none;, когда содержание каждого сообщения меньше, чем, скажем, 2000 символов.

<asp:repeater id="postsRepeater" runat="server" 
  onitemdatabound="postsRepeater_ItemDataBound">
    <ItemTemplate>
            <a class="button" href="#" runat='server' id='more'>Read More</a>
    </ItemTemplate>
</asp:repeater>

В PHP вы можете просто написать что-то вроде:

<?php echo (contentLength < 2000 ? 'display: none;' : ''); ?>

Тем не менее, я проверил этот код и он выдал и ошибка:

<%= Eval("Content").Length < 2000 ? "display: none;" : string.Empty %>

Возможно ли этонаписать троичный встроенный ASP.NET в элемент управления Repeater?Как?

1 Ответ

5 голосов
/ 10 августа 2011

Это не проблема троичного оператора;это проблема элементов управления с привязкой к данным, потому что вы должны использовать # вместо =.

Использовать это

<%# Eval("Content").ToString().Length < 2000 ? "display: none;" : string.Empty %>

вместо

<%= Eval("Content").ToString().Length < 2000 ? "display: none;" : string.Empty %>
...