0

我想知道是否有更好的方法来编写这段代码。

<%#Eval("hasAccess").Equals(true) ? "<a href='/CaseActivities.aspx?" + Eval("caseURL") + "'>" + Eval("caseName") + "</a>" : Eval("caseName")%> 

我试过 <% If (Eval("hasAccess") ... 但 asp.net 不喜欢那样:)

我希望有类似的东西

<% If Eval("hasAccess") %>
do stuff .. 
<% else %>
do other stuff.

但是当使用带有 IF 的 Eval 时,它会变得一团糟......有什么想法吗?

4

1 回答 1

4

几乎可以肯定,您应该在后面的代码中执行此操作,而不是在 scriptlet 中。在数据绑定的情况下,有几个选项:

  1. 与其将这些操作作为数据绑定的一部分执行,不如在绑定之前更改底层数据源,以便数据绑定本身只采用原样的值。

  2. 在后面的代码中添加一个方法,该方法获取该列并返回正确的值,这样数据绑定方法只需要评估对该方法的调用并传递该列。

  3. 如果要复杂,不要在标记中进行数据绑定;在代码后面使用数据绑定事件(如果可用)。

这些是按照您应该尝试使用它们的优先顺序列出的。

于 2013-01-29T22:29:29.047 回答