- - PR -
GridViewからのDataSet取得
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-11 11:22
どっとねっとふぁん様
度々の回答ありがとうございます。
丸ごとすべてではないですが、 今回の対象になるであろう部分のソースはこんな感じで実装しています。 (sakujo_Clickに関しては[GridViewからデータセットを抜き出す]処理以降は未実装ですが…) (あまり人に見せられないソースなのはご容赦ください。) 実装部:
修正作業は行えますが、 登録の部分のロジックはまだ作成していないので何とも…です。 もし、ここから何かわかるようでしたら、 ご教授いただければ幸いです。 肝心のコードを間違えていました… [ メッセージ編集済み 編集者: 32WH 編集日時 2006-08-11 11:24 ] | ||||||||||||
|
投稿日時: 2006-08-11 12:39
そういえばこのあいだちょうど参考になりそうなページ見つけていたのでした。
http://www.dotnetbips.com/articles/displayarticle.aspx?id=511 これがそのまま使えるわけではありません。 このページだと毎回データをデータベースから取り出してますけど、これを一度だけ とりだして、あとはDataSetをセッションオブジェクトにでも格納しておくようにします。 そして常にセッションに格納されたデータを利用する必要があります。 また、データの変更も直接データベースに書き込みにいってますけど、そのかわりに 上記で作ったDataSetの内容を書き換えるように修正しないといけません。 データの削除の記述はないですが、データの変更を参考にすれば同じような考え方で いけるかな。 削除するデータのキー項目の値はとりだせたはずですし。 そうやって自分が持っているDataSetを更新しておいて、登録ボタンが押されたときに そのDataSetをデータベースに書き戻してあげるようにすればいけるんじゃないかな。 ただ、この間にデータの一部を他の人が書き換えていたときにどう処理するかの 問題がありそうですけどね。 #いま修正ができている(ように見える)のはGridViewがViewStateに持っているデータを操作しているだけのように思えます。 内部的にDataSet等を持っているのではないのかも。。。 | ||||||||||||
|
投稿日時: 2006-08-11 15:24
ということですね。そして[登録]ボタンは一つだけ、GridViewの外にある、と。 私もにたようなのを作ったんですが、違うのは、Templateを使って最初から全行編集可能状態にしています。 各行に[編集]ボタンがありません。[登録]ボタンが押されたときには全行をUpdateRowしています。 | ||||||||||||
|
投稿日時: 2006-08-11 16:09
参考までに
以下のサイトにあるDataSet DataSourceを利用して双方向バインドしてあげればたぶん目的のことが達成できると思います。 ASP.NET 2.0 DataSet DataSource http://weblogs.asp.net/aaguiar/articles/432695.aspx あと注意点として、GridViewの更新ボタンによる更新を利用しないのであれば、DataSetに入力値を反映するためには全ての行にプログラムからUpdateRowを実行する必要があるかな。 (ASP.NET2.0の双方向バインドを上手く使うとコントロールとデータのデータの受け渡すためのコードが記述する必要がなくなります) |