1

TLDR: 単一のデータセット行を更新することは可能ですか? ajax ワークフローが実行された後、データベースから現在の行を更新したいのですが、データセット全体ではありません (非常に大きく、クエリ全体を実行するのが遅くなる可能性があるため)。


非常に大きなデータセットを表示するレコード テーブルと、データセットの現在の行に対して検証ルーチンを実行するボタンを含む画面があります。もともと、画面アクションを介して検証ワークフローを実行していましたが、これは、検証が完了すると画面全体がリロードされ、1 行だけが変更されたときにデータセット全体が更新されることを意味します。

問題は、変更をデータベースにコミットするデータセットに簡単にアクセスできないことです。これは ajax 呼び出しによって送信されたものとは異なるデータセットであるため、ajax 要求が完了したときに変更が自動的に画面に返されることはありません。

4

2 に答える 2

3

通常、コミット ワークフロー中に単一行編集データセットからリスト データセットに変更を手動でコピーし、後の段階で更新された行を取得するためにデータベースに対して別のクエリを実行しないようにします。

于 2012-09-04T05:55:49.210 に答える
2

行が編集されたデータセットにアクセスできないため、最初にデータベースから編集された行を取得し、次にその行を画面に表示されている実際のデータセットにコピーする必要がありました。例えば:

<!-- retrieve just the edited row -->
<dataset name="temp-foo" databroker="bar" query="get-bar-by-id">
  <param name="id" value="{$foo.id}" />
</dataset>

<!-- copy the result back to the original dataset -->
<copy-row from-dataset="temp-foo" to-dataset="foo" />

現在<refresh-dataset>、単一の行だけに相当するものはないため、スクラッチ データセット (または編集されたデータセット) を使用して、結果を元のデータにコピーする必要があります。

于 2012-09-04T06:31:30.287 に答える