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

时间:2011-08-10 11:11:01

标签: asp.net ternary-operator

想象一下,我在转发器的ItemTemplate中有一个名为“readMore”的链接按钮,当每个帖子的内容小于2000时,我想为它设置display: none;字符。

<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 %>

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

1 个答案:

答案 0 :(得分:5)

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

使用此

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

而不是

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