6

以下のように、gridview.datasource をデータテーブル変数に設定しています。

DataTable dt = gvPaymentHistory.DataSource as DataTable;  

gvPaymentHistory.DataSource にはレコードがありますが、その行が実行された後、dt は null になります。Datasource レコードを dt に渡すにはどうすればよいですか?

編集

DataSource は、クラス オブジェクトの List コレクションです。DataSet ではありません

4

3 に答える 3

2

簡単な方法は、データをグリッドにバインドするときにグリッドのデータソースをビューソースに格納し、必要になるたびにビューソースからデータを取得することです。

Gridview.Datasource = yourdatasource;
ViewState["mydatasource"] = yourdatasource;

取得中

DataTable dt = ViewState["mydatasource"] as DataTable;

これで問題が解決することを願っています。

于 2012-08-03T08:51:47.180 に答える
0

この方法を試す:BindingSourceを使用する

BindingSource bs = (BindingSource)gvPaymentHistory.DataSource;
DataTable dt =((YourDataSetType) (bs.DataSource)).Tables[0];
于 2012-08-02T13:56:11.713 に答える
0

編集

入札タイプがリストの場合は試してみてください

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;
于 2012-08-02T13:50:42.913 に答える