"如果" Formview标记中的条件

时间:2014-10-17 19:58:08

标签: c# asp.net entity-framework webforms formview

我想使用表单视图显示学生成绩单。如果报告卡是第二学期的报告卡,则会有其他列,如果是第3学期,则会有2列。为了找出它是哪个术语,我需要评估TermNumber属性,并显示相应的标题。这是我的标记代码:

<% if ((int)Eval("TermNumber") == 2) %>
<% { %>
    <th> 1st Term Score</th>
<% } %>
<% else if ((int)Eval("TermNumber") == 3) %>
<% { %>
    <th> 1st Term Score</th>
    <th> 2nd Term Score</th>
<% } %>

这会导致运行时错误:数据绑定方法(如Eval(),XPath()和Bind())只能在数据绑定控件的上下文中使用。

这是因为Eval只能是&lt;%#%&gt;的一部分。标签

使用&lt;%#%&gt;导致编译时错误,VS13 intellisense表示无效术语。

我的问题是:我如何成功实现有条件地显示列的目标。我可以在数据绑定控件的标记中使用if Condition吗?或者是否有其他方法可以实现这一目标,而无需为每个术语创建单独的表单视图。

表单视图,还有一个转发器控件来显示主题分数,还需要使用if条件。

1 个答案:

答案 0 :(得分:2)

所以我回答了我自己的问题。感谢Ruben接受的回答:eval in if statement?

<th runat="server" visible='<%# (int)Eval("TermNumber") > 1 %>'>1st Term Score</th>
<th runat="server" visible='<%# (int)Eval("TermNumber") > 2 %>'>2nd Term Score</th>

这也可以在中继器控制中没有任何问题。 由于runat =“Server”的Visible属性不包含任何标记,因此在最终输出中,它可以正常工作。并且if块的代码也更优雅。