使用Eval的if语句的C#错误

时间:2012-03-22 02:24:07

标签: c# asp.net

当我尝试做下面这样的事情时,我收到了一个错误,

<% if (Eval("DescriptionShort") == "")
    { %>
    There is no description for this winery
<%}
    { %>
    <%# Eval("DescriptionShort") %>
<%}%>

我得到的错误是,

数据绑定方法(如Eval(),XPath()和Bind())只能在数据绑定控件的上下文中使用。

我可以做这样的事吗?如果没有,我可以在后面的代码中做些什么吗?

SqlDataAdapter adDetail = new SqlDataAdapter("SELECT * FROM TBLWineries WHERE WineryShow = 'True' AND WineryRegionFK =" + Request["WineryRegionID"], conn);

DataSet dsDetail = new DataSet();
adDetail.Fill(dsDetail);

修改

这是一个带有表格的DataList,我需要它用于页面的布局。接下来的两行代码显示了我如何填充DataList,

WineryListDL.DataSource = dsDetail;
WineryListDL.DataBind();

其他地方有人说我可以使用它,它没有给出错误它不会显示其他部分!如果“DescriptionShort”存在,它可以正常工作,但如果没有,我没有文字。

<%# Eval("DescriptionShort") == "" ? "There is no description for this winery" : Eval("DescriptionShort") %>

如果这样做,如果是的话,可能与“DescriptionShort”不为空或“”???

有关

干杯,

麦克

1 个答案:

答案 0 :(得分:2)

你应该完全按照错误说 - 使用某种数据绑定控制,例如GridView控件。
例如,将数据集绑定到GridView.DataSource属性,并使用Eval函数为单元格提供值。

查看此MSDN文章Data-Binding Expressions Overview
这是如何一起使用GidView和SqlDataAdapter的示例:How to Edit,Update,Delete in Gridview