日期:2014-05-18  浏览次数:20506 次

不用控件,能不能调用dataset 的数据?【在线等】
我就想这样调用

  <div style=" text-align:center"><%#((System.Data.DataRowView)Container.DataItem)["content"]%></div>



为什么会出错呢?我明明在后台生成一个DATASET了。
编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 

编译器错误信息: CS0117: “System.Web.UI.Page”并不包含“DataItem”的定义

源错误:

 

行 13: <div>
行 14: <head:head ID="head" runat="server" />
行 15: <div style=" text-align:center"><%#((System.Data.DataRowView)Container.DataItem)["content"]%></div>
行 16: <foot:foot ID="foot" runat="server" />
行 17: </div>
 


------解决方案--------------------
<%# %>
这个不用控件可不行


不用控件,自己把数据遍历出来
------解决方案--------------------
Container.DataItem怕是要绑定以后才有
------解决方案--------------------
当然会出错了

Container.DataItem 这个指什么东西?
用DataGrid或者其他数据绑定控件,对Container进行了定义,可以在前台使用类似的语法
既然不想用数据绑定控件,就按照asp的做法,编历数据源来打印数据
如:
System.Text.StringBuilder result = new StringBuilder();
for (int i = 0; i < DataSet["table"].Rows.Count; i++)
{
result.Append("<div">).Append(DataSet["table"].Rows[i].Cells[1].Text)).Append("</div>");
}

然后:<%= result.ToString() %>
------解决方案--------------------
在CS文件里生成HTML代码
------解决方案--------------------
那你就用asp的那种写法吧.
循环DataSet.

为什么不用Repeater呢?直接绑定,然后按你这种写法就可以了.
------解决方案--------------------
你可以在后台把dataset中需要的值赋给一个变量(不是私有的),前台直接<%=变量%>