所以我在ASPX页面中有一个GridView.
当我点击< asp:Button id =“btnBindIt”runat =“server”/>它绑定数据表如下:
theDataTable = GetAllTheRecords(); gvTheGridView.DataSource = theDataTable; gvTheGridView.DataBind();
注意:theDataTable是一个成员
private DataTable theDataTable;
这按预期工作.
现在,在很好地显示GridView之后,我想将数据导出为CSV,所以现在我点击< asp:Button id =“btnExportIt”runat =“server”/>运行代码:
exportToCsv(theDataTable);
但是theDataTable为null.
所以我试过了
exportToCsv(gvTheGridView.DataSource)
哪个也是null.
持久化这些数据的标准方法是什么?我真的不想再次点击数据库,因为它是一个很长的SPROC并且用户已经等了一次.
提前致谢!
解决方法
类级变量无法在回发时保持其值.
但是有两种方法可以在页面的PostBack上维护数据:ViewState和Session State.
但我建议你在Scenario中把它放在ViewState中.
ViewState["theDataTable"] = theDataTable; Session["theDataTable"] = theDataTable;
然后你可以在页面上回访它:
DataTable theDataTable = (DataTable)ViewState["theDataTable"]; DataTable theDataTable = (DataTable)Session["theDataTable"];