0

行をインラインで変更できるテーブルがあります。各行の最後に送信ボタンの列があります。ドメインオブジェクトのバッキングリストをループし、それぞれをフォームに入れて、その方法で個別に送信するので、これは正常に機能します。

チェックボックスの列を追加して、ユーザーが複数の行を一括更新できるようにすると、問題が発生します。一括更新操作のボタンはそのテーブルの外にあり、各行の形式もあります。テーブルの外にある[一括更新]ボタンを押したときに、選択した行のバッキングドメインオブジェクトを取得するにはどうすればよいですか?

チェックボックス専用のフィールドをドメインオブジェクトに追加できる可能性があることはわかっていますが、機能的な目的を果たす代わりに使用しなければならないUIの結果として、面倒に見えるため、追加する必要はありません。

よろしくお願いします。さらに情報が必要な場合はお知らせください。

トニー

4

1 に答える 1

0
  1. 行ごとに1つのフォームを保持するのではなく、1つの大きなフォームとして保持します。
  2. 各チェックボックスに同じ「名前」を付けると、バックエンドでリストとしてアクセスできます。
    例:<g:checkbox name = "selectedRow" />
  3. 同様に、各列の各入力フィールドにも同じ名前を付けます。たとえば、すべての行の年齢の入力を受け取るすべてのテキストボックスに同じ名前を付けます。
  4. これで、バックエンドですべての列入力にGroovyリストとしてアクセスできるようになりました。
  5. 'params.selectedRow'を実行してチェックボックス入力を抽出します(selectedRowは上記のチェックボックスに付けられた名前でした)
  6. そのリストで、値がtrueのチェックボックスを見つけ、このチェックボックスリストのインデックスを残りの入力と一致させて、それらを更新します。

私はこの答えをできるだけ詳細にするように努めました、あなたがどの部分も理解しなかったならば、私に知らせてください。

于 2012-08-14T13:20:10.637 に答える