2012-10-26 11 views
5

オブジェクトの「編集」ページで作業しています。このページでは、DetailsViewのようなものを持っていて、オブジェクトのプロパティの編集や、GridViewの子との簡単な追加/編集/削除を可能にしたいと考えています。保存ボタンをクリックするまで、親オブジェクトまたは子オブジェクトの更新はデータベースに保存しないでください。私はasp.netのWebフォームとEntity Frameworkです子エンティティを持つ親エンティティオブジェクトを編集するWebフォームの例が必要

単純な例として、リソースのコレクションを持つProjectオブジェクトを想像してみてください。私は、ユーザーがDetailsView内のProjectNameのようなプロジェクトプロパティを変更し、下のGridviewのリソースを追加/編集/削除することを可能にするページを構築しています。一番下のSaveボタンはすべてを保存します。

MVCでこれの例が見つかりましたが、Webフォームの例を見つけるのに問題があります。

+0

私はこのスキーマを作成していませんが、マスターデータが保存されるまでビューステートの子変更データを保存し、すべて一緒に保存することをお勧めします。 – Aristos

答えて

0

私はあなたのアプリケーションをコーディングすることができませんが、同じパターンの2つのバリエーションのいずれかを使用してこれを達成しました。

子のためにシリアライズ可能なレコードオブジェクトを作成し、それをViewStateベースのリストで管理します。データが非常に大きい場合は、Sessionに保持し、Sessionオブジェクトに一意のキー(Page_Loadで割り当てられたGUIDなど)を使用し、そのキーをViewStateに格納することを検討してください。

親/子の編集が終了したら、ViewState/Sessionベースのオブジェクトをディスクに保存されたものに解決する必要があります。

+0

エンティティオブジェクトの格納を提案したときにViewStateを使用してこれを動作させることができました。最大の課題は、GridviewとDetailsViewにEntityDataSourceを使用しようとしていたことでした。これはうまくいかず、直接エンティティオブジェクトをデータソースとして使用し、更新イベントの値割り当てをコーディングしました。 – OffTheRadar

+0

正しいですが、データベースとの接続が解除されても、標準のデータソースは動作しません。 viewstateのサイズを監視します。それが問題になり始める場合は、テンポラリデータストアを静的状態のキーでセッションに移動することを検討してください。 – andleer

関連する問題