0

私はデルフィの世界から来ており、注文や製品などのマスター/詳細インターフェイスを作成したいと考えています。
フィールドとjqGridを使用してデータを表示するアクションをすでに実行しました。私が知りたいのは、行の追加、編集、削除を可能にする方法ですが、ユーザーがマスターで変更を確認したときに、dbで変更を加えるだけです。
デルファイでは、メモリ内のすべての変更を含むTClientDataSetを使用し、確認の直後に次のようなトランザクション内でそれらを実行します。 したがって、履歴書では、グリッド内の行の配列をメモリに保持する方法と、それらを送信する方法がわかりません。サーバーに戻ってコミットします。 どんな助けでもありがたいです。前もって感謝します。
BEGIN
Master.Post
FOREACH Line IN Lines Line.Post
COMMIT


4

1 に答える 1

0

おそらくグリッド内のいくつかの非表示フィールドやフォームフィールドを使用して、クライアント側の変更を追跡する必要があります。行が削除された場合(以前はデータベースに存在していた)、削除する行を含むフィールドにそのIDを追加する必要があります。追加される行には、データを含むフォームフィールドが関連付けられている必要があります。マスターがコミットされると、フィールドのセット全体がPOSTにロールアップされ、サーバーに返送されます。

LINQ to SQLを使用して、データコンテキストを作成し、マスターオブジェクトを取得してから、そのようにマークされた関連オブジェクトを(IDの非表示フィールドから)削除し、取得する前に存在しなかった新しい関連オブジェクトを作成/追加します。適切なフォームフィールドからの値。次に、を実行するSubmitChangesと、すべてのステートメントが1つのトランザクション内で実行されます。

于 2010-01-05T15:02:35.017 に答える