2011-12-08 18 views
2

私はaspxページでgridviewを持っています。Webフォームasp.netで実行時にgridviewからデータを取得する方法

gridviewにはすでにデータソースがあり、データが読み込まれます。

私は、ユーザーがボタンをクリックすると、このようにそれからデータを取得しようとしています:

DataTable dt = (DataTable)grdList.DataSource; 

は、しかし、それはNULLとして、この結果を示しています!

私はこれがポストバック/ビューステートの問題であると理解しています。

誰かが私には私はGridViewのからデータを取得することが可能なソリューションをお勧めしてくださいできますか?>

+0

グリッド内のボタンまたはグリッドが含まれているフォーム上のボタンをクリックしていますか? – gsirianni

+0

@gsirianniユーザーが、グリッドではなくフォーム上にあるボタンをクリックしています –

+0

データグリッドにバインドするsqlDataSourceまたはobjectDataSourceですか?テーブルが非常に大きい場合、私はオブジェクトデータソースを通してクエリを再実行するかもしれません。そうでない場合は、データテーブルをビューステートに保存すれば十分です。 – gsirianni

答えて

4

んが、あなたがasp.netのGridViewのからデータを取得することはできません。代わりにこのコードを使用してください。

Datatable dt = SomeMethodReturningDataTable(); 

Viewstate["Table"] = dt; 

GridView.DataSource = ViewState["Table"]; 
Gridview.DataBind(); 

あなたは、chnagesを作るビューステートからテーブルを引き出し、変更を行い、その後、再びそれをプッシュし、グリッドにバインドします。

+0

なぜマイナスですか?何か特別な理由。 –

+0

これを行うときに:Viewstate ["Table"] =(DataTable)grdList.DataSource;私は 'viewstate'が現在のコンテキストに存在しません。 –

+0

これは動作しますが、ページサイズはテーブルのサイズによって大きくなります。私はこのアプローチでは、必ずしもほんの少数のレコードが返ってくるのでないかぎり、やり遂げません。 –

関連する問題