2017-06-27 11 views
1

セルの編集時にonCellEdit()メソッドを呼び出すように構成された編集可能なPrimefaces Datatableがあります。 'rowKey ='でDatatable宣言の有効な値に明示的に設定するにもかかわらず、CellEditEvent.rowKeyが常にnullであることを除いて、すべてがうまく動作します。 Primefaces Datatable documentationは、編集中のセルを含む行の内容を取得するためにrowKeyが必要であると私に信じています。表示されたデータとデータベース内の同じデータを比較して、Datatableがレンダリングされてから永続化されたデータが別のクライアントによって変更されたかどうかを判断し、並行編集をキャッチします。編集可能なデータテーブルRowKey Null

+0

あなたの調査結果を回答し、それを受け入れたとマークしました。そうすれば、人々はこれを自分の解決策の良い源泉と見なすことができ、あなたの全体的な「質問」を読んだり、あなたの「答え」を見つけるだけでなく、また、あなたの質問と答えを理解する上でさらに役立つコードをいくつか用意してください。 – Fritz

+1

ありがとう、@フリッツ、理にかなっています。 – snakedog

答えて

0

行選択可能なDatatablesでrowKeyのrowKeyに何十もの記事を読んだ後、私は最終的にrowKeyが行の選択に読み込まれ、セルの編集ではないことに気付きました。しかし、rowIndexはセル編集ではnullではなく、行番号(0から始まる)を確実に与えるので、行全体の内容と行を取り込むために使用されるオブジェクトの値を取得できます。 value Datatable.getValue()からrowKeyに入れたいと思いました。 rowKeyの目的はドキュメント(私にとっては)ではっきりしていないので、同様の問題に遭遇した人にはこれを共有すると思いました。

+0

これに遭遇した人は、JSFスコープではなくSpringスコープを使用していますので、Viewスコープは使用できません。 BeanがViewスコープではない場合はCellEditEventに新しい値は含まれませんが、ValueChangeEventではonCellEditよりも前にonValueChangeが発生します。これには、1つのアクションを実行するには2つの方法が必要ですが、機能します。 – snakedog

関連する問題