怪事,取不到行值。在线等。
加载的时候是这样的
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"]没有值
传地址。。和传值 问题。。