5

我有一个可选择的 PrimeFaces 3.4.1 数据表:

<p:dataTable value="#{projectAdminisrationMB.selectedUserMemberOfGroups}" var="group1" 
    rowKey="#{group1.name}" selectionMode="single" selection="#{projectAdminisrationMB.selectedBelongToGroup}">
    ...
</p:dataTable>

我收到此错误:

com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback 访问 Grave:javax.faces.FacesException:启用选择时,DataModel 必须实现 org.primefaces.model.SelectableDataModel。

但是我已经rowKey按照FacesException 进行了设置:DataModel must implement org.primefaces.model.SelectableDataModel when selection is enabled。这是如何引起的,我该如何解决?

4

2 回答 2

9

rowKey属性中的 EL 表达式曾经计算过时,就会发生这种情况null

确保您的实例的name属性是never。否则最好使用表示自动生成的数据库主键的属性,例如- 如果你有一个。Group null#{group1.id}

于 2012-11-12T11:06:41.787 回答
-1

仅供参考 - 我在使用 Primefaces 列过滤器时遇到了同样的错误。如果我使用过滤器并单击刷新按钮重新加载表,我会遇到错误。如果我不使用列过滤器,那么刷新表格时就不会发生错误。我有几个列过滤器,它们通过提取名字或姓氏对包含全名的同一字段执行过滤器逻辑,所以我怀疑这个问题与这些过滤器有关。我还没有弄清楚这个问题,但我想与你分享这个以防万一。我正在使用rowKey。

于 2017-01-03T19:21:25.413 回答