- - PR -
GridView 変更行のみ一括更新する方法は?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-12-19 11:09
Visual Studio 2005
ASP.Net 2.0 GridViewに表示される複数の行を全て編集可能な状態にし、 編集後、変更された行のみ一括更新したいのです。 編集可能な状態には出来るのですが、行が変更されたか どうかの判断方法や更新方法がわかりません。 よい方法はありますでしょうか? また、GridViewにバインドしているDatasetの行には、 変更・追加・削除の情報があるらしいのですが、 それを取得する方法は、ありますでしょうか? | ||||
|
投稿日時: 2008-12-19 11:13
DataSet の GetChanges メソッドで取得できます。 _________________ Nakamura Blog | ||||
|
投稿日時: 2008-12-19 11:33
Datasetの状態はGetChangesでいいかも知れませんが、行の情報はDataRowのRowStateのほうじゃなかったでしたっけ? http://msdn.microsoft.com/ja-jp/library/system.data.datarow.rowstate%28VS.80%29.aspx | ||||
|
投稿日時: 2008-12-19 12:02
Update かけたら、中で自動的に振り分けてくれます。
| ||||
|
投稿日時: 2008-12-19 12:04
ごめんなさい。表現がわかりづらいのでちゃんと書きます。 Datasetの中で変更があった行はGetChangesで取れますが、そこから変更・追加・削除を判断するならDataRowのRowStateを見ましょうって事です。 GetChangesにDataRowState列挙体を渡してやれば、それぞれの状態の配列で取れますが、引数の無いGetChangesで一括にRowを取得して、取得したRowの配列をぐるぐる回しながら、RowStateを見てそれぞれの処理を行うほうが自分は好きです。 ちなみにデータベースの更新なら、DataAdaptorを使ったほうが楽チンです。 | ||||
|
投稿日時: 2008-12-19 12:15
なかむらさん、セラフさん、有難うございます。
GetChangesやRowStateを使用して取得するタイミングですが、 ポストバック後だと、消えてしまうのでしょうか? どのタイミングで使用すればよいのでしょうか? VBかC#で、サンプルコードがありましたら、 参考にさせて頂きたいのですが・・・ | ||||
|
投稿日時: 2008-12-19 13:41
DataSet を Session や ViewState に格納しているなら大丈夫だと思います。 _________________ Nakamura Blog | ||||
|
投稿日時: 2008-12-19 14:01
サンプル「コード」ではありませんが、近いものを。 http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-29147.htm _________________ Nakamura Blog |