Repeater控件中的三元内联ASP.NET

Sae*_*ati 1 asp.net ternary-operator

想象一下,我在ItemTemplate转发器中有一个名为"readMore"的链接按钮,我想设置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>
Run Code Online (Sandbox Code Playgroud)

在PHP中,您可以简单地编写如下内容:

<?php echo (contentLength < 2000 ? 'display: none;' : ''); ?>
Run Code Online (Sandbox Code Playgroud)

但是,我测试了这段代码,并且它是错误的:

<%= Eval("Content").Length < 2000 ? "display: none;" : string.Empty %>
Run Code Online (Sandbox Code Playgroud)

是否可以在Repeater控件中编写三元内联ASP.NET?怎么样?

Gov*_*iya 5

这不是三元运算符的问题; 这是数据绑定控件的问题,因为你必须使用#而不是=.

用这个

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

代替

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