Jsf 2 primefaces3.0数据表选择和值属性

Jsf 2 primefaces3.0数据表选择和值属性,jsf-2,primefaces,Jsf 2,Primefaces,我已将我的项目从Primefaces 2.2升级到3.0 我在Datatable中面临问题。我有一个Datatable,我通过列表填充它的值,所选行保存在数组中 <p:dataTable id="datavalues" value="#{bean.list}" var="o" paginator="true" rows="10" selection="#{bean.selected1

我已将我的项目从Primefaces 2.2升级到3.0
我在Datatable中面临问题。我有一个Datatable,我通过列表填充它的值,所选行保存在数组中

    <p:dataTable id="datavalues" value="#{bean.list}" 
                        var="o" paginator="true" rows="10" 
                        selection="#{bean.selected1}"           
                           rowKey="#{o.property1}"  > 
list、selected1、selected2都是beanHelper类的属性。
这段代码在2.2上运行得很好,它与值也是一个数组和选择也是一个数组有关。

在Primefaces 2.2中,选择将自动更新其bean值,但这可能不是每种情况都需要的,因此,在3.0中,他们对其进行了更改,因此要进行ajax回发,您需要在数据表中放置一个带有
行选择
事件的
标记

<p:dataTable id="table1" ... >
  <p:ajax event="rowSelect" update="formid:table1 formid:table2" oncomplete="dlg.show()" />
  ...
</p:dataTable>

<p:dataTable id="table2" ... >
  ...
</p:dataTable>

...
...

选择第一个数据表将触发服务器回发和第二个数据表的部分页面更新。

我认为您应该尝试在第一个
中添加
selectionMode=“multiple”
,在第二个
中添加
selectionMode=“single”
,谢谢您的回复。我的数据表位于不同的.xhtml页面中。如何更新不同页面的ID我没有看到编辑,只有一个例外,因此这可能只是beanHelper类中的代码问题。没有看到您的代码,我无法判断。我还必须从第二个数据表中选择多个项目。@奇怪的是,
selected1
selected2
必须是
List
<p:dataTable id="table1" ... >
  <p:ajax event="rowSelect" update="formid:table1 formid:table2" oncomplete="dlg.show()" />
  ...
</p:dataTable>

<p:dataTable id="table2" ... >
  ...
</p:dataTable>
<p:dataTable id="table1" ... >
  <p:ajax event="rowSelect" update="formid:table1 formid:table2" oncomplete="dlg.show()" />
  ...
</p:dataTable>

<p:dataTable id="table2" ... >
  ...
</p:dataTable>