- - PR -
GridViewの編集中のDataSourceをとりたい
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-05-08 17:23
やってみます。ありがとうございます。
| ||||
|
投稿日時: 2007-05-09 16:51
やってみたのですが
ObjectDataSourceにDataTableのPrivateフィールドを作っても メソッドを呼び出すたびにnullになります。 Selectメソッドを呼び出した後Updateメソッドを呼び出しても同じです。 またSessionにDataTableを放り込み ボタン押下時にSessionより取得してObjectDataSourceの外で更新しても GridViewには反映されません。 この方法はだめなのでしょうか。 | ||||
|
投稿日時: 2007-05-09 17:18
SqlDataSourceを使ってDataTableをSessionに入れ
Sessionより取得して編集行を更新してデータ行をAddして GridViewのDataSourceにセットしDataBindすれば 追加・編集ができることは確認しました。 [ メッセージ編集済み 編集者: island_town 編集日時 2007-05-09 17:20 ] [ メッセージ編集済み 編集者: island_town 編集日時 2007-05-09 17:22 ] | ||||
|
投稿日時: 2007-05-09 18:38
ObjectDataSource用のClassそのものを
イベントのObjectCreatingとObjectDisposingで Sessionから取得・格納して Classの中にDataTableのPrivateフィールドを入れ 初めはそこに保存し次回からはそこから取得したところ DateTableにちゃんと値が入っていることを確認しました。 更新の仕方は http://dotnetfan.org/blogs/dotnetfanblog/default.aspx に載っていました。 でaspxのPrivateフィールドとしてObjectDataSourceのClassを保持しておいて そのClassにDataTable取得関数を作り 取得したDataTableに行をAddしたところ GridViewに編集・追加して表示されました。 あとはDBへの保存ですが 明日試すことにします。 | ||||
|
投稿日時: 2007-05-10 11:16
DBへの保存は変更または追加のあった行のみ
申請テーブルへ内容を追加するのですが 型付データセットがDateTimeやintでnullを入れられないため TableAdapterではなくDataSetにQueryを定義して 保存ボタンでObjectDataSourceのClassのDataTableをループしながら QueryTableAdapterを実行する方法を取ったところ うまく行きました。 ありがとうございました。 | ||||
|
投稿日時: 2007-05-10 12:11
[型付データセット].[テーブル名][行番号].[列名] = null が出来ないという意味であれば [型付データセット].[テーブル名][行番号].Set列名Null() こんなメソッドが自動生成されていると思いますが。 それが無いなら、対象の列にNull不許可の定義をしてしまっているかですね。 | ||||
|
投稿日時: 2007-05-10 12:20
知りませんでした。とても役に立ちます。
ありがとうございます。 | ||||
|
投稿日時: 2007-05-10 13:40
QueryTableAdapterでInsertすると
DataRowのフィールドを引数に渡すとき Nullだとエラーになるので DataSetデザインで TableAdapterにUpdateCommandとInsertCommandを作り 保存ボタン押下時にDataTableをループしながら 判断しながらDataRowにIDを入れ TableAdapterにDataRowを渡したところ 成功しました。 お世話になりました。 [ メッセージ編集済み 編集者: island_town 編集日時 2007-05-10 13:47 ] |
«前のページへ
1|2|3