ASP.Net条件数据绑定

=Config.MAX_ENQUIRY_SALES) { %> ...  ...  

给我一个InvalidOperationException? 如何在ASP中编写条件html生成?

使用内联语句作为John_状态,或者在代码后面创建一个执行所需逻辑的函数。

 protected string MyFunction(int nbrOrders) { if(nbrOrders>=Config.MAX_ENQUIRY_SALES) { return "TrueResult"; } else { return "FalseResult"; } } 

然后使用如下

 <%# MyFunction(Convert.ToInt32(Eval("NbrOrders"))) %> 

编辑:我刚刚阅读了另一篇文章的评论,该文章表明您希望根据此结果显示不同的HTML。 在这种情况下,您可以尝试使用包含代码的占位符的Visible标志。 如:

  
My True Html Here
My FalseHtml Here

我不确定你可以为条件绑定添加括号,我知道这样做的唯一方法是使用内联语句,如下所示:

 <%# Convert.ToInt32(Eval("NbrOrders"))>=Config.MAX_ENQUIRY_SALES) ? Eval("IfTrueValue") : Eval("IfFalseValue") %> 

@Robin Day的答案的问题是,如果您有数据绑定子项可能有也可能没有给定您呈现的当前状态的数据,以下代码将失败。 如果你有一个复杂的对象图,有时很难在可空的数据绑定代码周围进行操作。

例如,考虑:

   <%# ((string)null).ToString("c") %> //an object that may have null data //given the visible condition  

如果VisibleCondition()返回false ,则仍然使用DataBind()调用子控件,这可能导致上面示例中的NullReferenceException


这是一个更好的方法,恕我直言:

 public class ConditionalPlaceHolder : PlaceHolder { protected override void DataBindChildren() { if( this.Visible ) { base.DataBindChildren(); } } } 

并按以下方式使用:

  //whatever databound code <%# ((string)notNullGivenVisibleCondition1).ToString() %> 

But could be given visible condition 2

//whatever databound code <%# ((string)notNullGivenVisibleCondition2).ToString() %>

But could be given visible condition 1

我在句子中找不到错误,但在Config.MAX_ENQUIRY_SALES和Convert.ToInt32(Eval(“NbrOrders”))之间进行了比较。 这些运营商是同一类型的吗? 你能在网页上显示每个类型吗?

if / else阻止在ASP .NET中按预期工作。 以下工作正常。

 <% if(DateTime.Now.Second % 2 == 0) { %> 
Even
<% } else { %>
Odd
<% } %>

也许你的例子中的条件逻辑是抛出exception?