在formview中if else语句

时间:2010-01-22 22:57:50

标签: asp.net formview

我有一个FormView,它从SQLServer数据库渲染字段,但也有很多特定于我得到的数据库值的静态文本。我不知道这是否可以在后面的代码中完成并将所有这些放在一个函数中。我把它放在我的形式视图中

<ItemTemplate>

<% If Eval("Feature1") = "Yes" Then %>

 <%# Eval("Username") %> <p>A lot of text</p>

 <% elseIf Eval("Feature1") = "No" Then %>

 <%# Eval("Username") %>
<p>A lot of different text</p>

 <% End If %>

</ItemTemplate>

如果我执行上面的代码,我会收到错误消息:

  

数据绑定方法,如Eval(),XPath()和Bind()只能是   用于数据绑定控件的上下文中。这可以在内部完成   形式视图?

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

您可以按如下方式使用DataBinder.Eval

<% if (DataBinder.Eval(formview.DataItem, "First") == "Yes") { %>
    <p>A lot of text</p>
<% } else { %>
    <p>A lot of different text</p>
<% } %>

如果您有任何回发,则必须将DataItem存储在某处并将其用作DataBinder.Eval的参数,因为它会变为空。

答案 1 :(得分:0)

你的if逻辑应该在你的控件的数据绑定事件中的代码中。

每一行都会触发此事件,然后您可以根据数据编辑该行的外观。

protected void FormView1_DataBound(object sender, EventArgs e)
{

}