动态gridviewallowpaging返回DataBind错误
本文关键字:错误 DataBind 返回 gridviewallowpaging 动态 | 更新日期: 2023-09-27 18:05:54
我在我的网页上添加了一个GridView到PlaceHolder,并将其数据源设置为linq查询。问题是,当控制通过gv.DataBind();
运行时,它会在我的脸上爆炸,返回一个对象未设置bla bla bla错误。
堆栈跟踪看起来像
在System.Web.UI.WebControls.GridView.get_StateFormatter ()在System.Web.UI.WebControls.GridView。BuildCallbackArgument (Int32 pageIndex)在System.Web.UI.WebControls.GridView。createnumerpagager (tablelow row, PagedDataSource, PagedDataSource,布尔值addFirstLastPageButtons)在System.Web.UI.WebControls.GridView。InitializePager(GridViewRow row, Int32 columnSpan, PagedDataSource)…
我的代码是
var query = from list in dc.mytable
select list;
gv.DataSource = query.ToList();
gv.DataBind();
在寻找了很长一段时间的解决方案后,我提出了一个有效的建议,如果你需要的话,我与你分享。不幸的是,我关闭了浏览器,不记得在哪里看到了它,把功劳给了解决我问题的家伙。
我把它贴在这里,因为我在这里没有找到任何解决我的问题的答案。
这个问题的原因是,因为GridView是动态添加的,有一些问题与statformatter尚未设置(或类似的东西),所以它需要解决的是添加一个事件处理程序的Load事件和移动gv.DataBind();:
gv.DataSource = query;
gv.Load += (s, e) => {
gv.DataBind();
}
效果很好:)