日期:2014-05-17  浏览次数:20476 次

怪事,取不到行值。在线等。
加载的时候是这样的
  System.Data.DataSet dsRoles = updateProvide.Provider.GetAllHotPage(RolePager.PageSize, pageIndex, _Where, _Order);
  ViewState["ds"] = dsRoles.Tables[0];
  RoleRepeater.DataSource = dsRoles.Tables[0].DefaultView;//给绑定控件

事件

System.Data.DataTable dv = (System.Data.DataTable)ViewState["ds"];
dv.Rows.Count这里为什么是0啊,谁能帮看下,谢谢

------解决方案--------------------
你先
Response.Write(dsRoles.Tables.Count)

Response.Write(dsRoles.Tables[0].Rows.Count)

看分别是多少,如果是0就没有数据啊

------解决方案--------------------
单独写个方法
/// <summary>
/// 视图
/// </summary>
private DataTable GridViewSource
{
get
{
if (ViewState["List"] == null)
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("StockName", typeof(string)));
dt.Columns.Add(new DataColumn("GoodsNO", typeof(string)));
 
ViewState["List"] = dt;
}

return (DataTable)ViewState["List"];
}
set
{
ViewState["List"] = value;
}
}
绑定
RoleRepeater.DataSource = GridViewSource;
RoleRepeater.DataBind();
------解决方案--------------------
要把DataTable表格存在ViewState , 这样岂不是很消耗性能,而且源码里面会有很多垃圾代码。

ViewState 一般都存一些简单的字符串。。


把当前.cs页面的源码发出来,我到看看为什么要把DataTable存在ViewState 里
------解决方案--------------------
释放了dsRoles 后 
 ViewState["ds"]没有值
传地址。。和传值 问题。。