2010-04-09 65 views
13

大家好;Asp.Net(C#)内联编码Eval if语句

如何进行内联评估,如果控制?

<asp:TemplateField HeaderText="Name"> 
       <ItemTemplate> 
        <%# if(Eval("Bla Bla Bla").ToString().Length <= 15){Eval("Bla Bla Bla")}else{Eval("Bla Bla Bla").ToString().Substring(0,15)}%> 
       </ItemTemplate> 
      </asp:TemplateField> 

回答

33

使用叔表达 '?':

<asp:TemplateField HeaderText="Name"> 
       <ItemTemplate> 
        <%# Eval("Bla Bla Bla").ToString().Length <= 15 ? Eval("Bla Bla Bla") : Eval("Bla Bla Bla").ToString().Substring(0,15) %> 
       </ItemTemplate> 
      </asp:TemplateField> 
+9

''它的 “三元”(具有三个部分)''而不是 “叔”(第三次序);),或者像Eric Lippert指出的那样,只需与“有条件的运营商”联系即可:http://blogs.msdn.com/ericlippert/archive/2010/02/18/whats-the-difference-between-ternary-and-terrtiary。 aspx – 2010-04-09 11:29:02

+6

我可以编辑我的文章并更正它,但是你的评论不再有意义了,所以我会让我的帖子完好无损地让所有人看到:) – edosoft 2010-04-09 11:51:30

+0

感谢呦你很多...代码工作... – Chicharito 2010-04-09 12:09:39