24

RowSelectionを有効にして編集可能なDataTableを1つ実装しようとしました。

しかし、それは例外を投げています:

選択が有効になっている場合、DataModelはorg.primefaces.model.SelectableDataModelを実装する必要があります。

オブジェクトクラスとマネージドBeanクラスの両方にDataModelを実装しましたが、エラーは同じです。これで、空白のテーブルのみが表示されます。助けてください。

4

6 に答える 6

42

この問題には 2 つの解決策があります。

  1. rowKey、selection、および selectionMode 属性を dataTable に追加する
  2. SelectableDataModel インターフェイスを実装し、dataTable を満たすために ListDataModel のような DataModel を拡張する

最初のものはシンプルです。あなたの問題を解決するはずrowKey="#{myEntity.carID}"ですp:dataTable

于 2012-05-09T10:41:52.470 に答える
22

このエラーは、基になるリストに新しい項目を追加しようとして、新しい項目の rowKey に値を割り当てるのを忘れた (rowKey が null である) 場合に発生する可能性があります。

于 2013-03-21T14:23:39.993 に答える
3

ぼろきれによって与えられたソリューションに加えて、行キーが「NULL」の場合、またはリスト全体が「NULL」の場合、上記のすべての手順を完了しても同じエラーが発生する可能性があることに言及したいと思います。0 行を表示したい場合は、0 アイテムのリストを返します。リストに戻らないnullでください。

于 2014-11-25T04:51:23.537 に答える
2

エラー メッセージは、DataModel がインターフェイスを実装していないことを示していSelectableDataModelます。別のクラスにする必要があります。これは、PF ショーケースの例で、データ テーブルの定義をどのように行う必要があるかを示しています。

import org.primefaces.model.SelectableDataModel;  

public class CarDataModel extends ListDataModel<Car> implements SelectableDataModel<Car> {    
   ...
}
于 2012-05-09T10:08:31.593 に答える
0

EL 構文内で rowKey 値を囲むことを忘れないでください。

rowKey="row.id" 

失敗しますが

rowKey="#{row.id}" 

成功します。

于 2014-11-22T02:42:12.003 に答える