我将我的 gridview.datasource 设置为一个数据表变量,如下所示:
DataTable dt = gvPaymentHistory.DataSource as DataTable;
gvPaymentHistory.DataSource 有一条记录,但是在该行执行后 dt 为空。如何将数据源记录传递给 dt?
编辑
DataSource 是一个类对象的 List 集合。它不是数据集
我将我的 gridview.datasource 设置为一个数据表变量,如下所示:
DataTable dt = gvPaymentHistory.DataSource as DataTable;
gvPaymentHistory.DataSource 有一条记录,但是在该行执行后 dt 为空。如何将数据源记录传递给 dt?
编辑
DataSource 是一个类对象的 List 集合。它不是数据集
简单的方法是在将数据绑定到网格时将网格的数据源存储在视图源中,然后在每次需要时从视图源中检索它。
Gridview.Datasource = yourdatasource;
ViewState["mydatasource"] = yourdatasource;
检索时
DataTable dt = ViewState["mydatasource"] as DataTable;
希望这能解决您的问题。
编辑
如果投标类型是列表而不是尝试
List<CodeEntity> data= gvPaymentHistory.DataSource as List<CodeEntity>;
或者
List<CodeEntity> codes = (List<CodeEntity>)gvPaymentHistory.DataSource;
检查这个
if(gvPaymentHistory.DataSource is DataTable)
DataTable dt = gvPaymentHistory.DataSource as DataTable;
if(gvPaymentHistory.DataSource is DataView )
DataView dv = gvPaymentHistory.DataSource as DataView;
试试这个方法:使用BindingSource
BindingSource bs = (BindingSource)gvPaymentHistory.DataSource;
DataTable dt =((YourDataSetType) (bs.DataSource)).Tables[0];