我正在使用PF 3.1.1,JSF 2.0。
我有一个带有selectBooleanCheckBox列的数据表。当用户选择行时,我希望选中复选框,当用户选中复选框时,应选择该行。
我在selectBooleanCheckBox上进行ajax调用,它会更新backing bean中的selectionArray,但结果不会显示在屏幕上。
这是代码 -
<p:dataTable id="mylist" value="#{myController.selectedLists}"
selection="#{myController.myArray}"
selectionMode="multiple"
var="item"
rows="5"
rowKey="#{item.id}"
sortBy="#{item.name}"
sortOrder="ascending"
>
<p:ajax event="rowSelect"
listener="#{myController.onSelectList}"
update="mylist"/>
<p:column style="width: 20px;" id="gs">
<h:selectBooleanCheckbox id="booId"
value="#{item.booVal}">
<f:ajax execute="@this"
listener="#{myController.booValListener}"
render="mylist"/>
<f:attribute name="item" value="#{item}" />
</h:selectBooleanCheckbox>
</p:column> </p:datatable>
非常感谢任何帮助。
答案 0 :(得分:0)
复选框/单选按钮选择方法对您不起作用吗?查看该功能的展示演示:http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionRadioCheckbox.jsf
现在问题:过去我在ajax请求后更新数据表时遇到了问题。除非他们从primefaces 3.0开始解决这个问题,否则不可能直接更新数据表,你必须在它周围包装一个panelGroup并更新panelGroup。例如:
<h:panelGroup id="panel">
<p:dataTable id="mylist" value="#{myController.selectedLists}"
selection="#{myController.myArray}"
selectionMode="multiple"
var="item"
rows="5"
rowKey="#{item.id}"
sortBy="#{item.name}"
sortOrder="ascending"
>
<p:ajax event="rowSelect"
listener="#{myController.onSelectList}"
update="panel"/>
...
</p:dataTable>
</h:panelGroup>
试一试,看看它是怎么回事。