我在DataTable的列中有一个Primeface
selectBooleanCheckbox
。在里面有一个<p:ajax
,它会在侦听器(mybean.checkCell(cell.field2))
中调用方法并保存复选框的状态。
我的问题是,当我检查时,整个p:dataTable
会刷新。
如何在不刷新整个dataTable的情况下调用mybean.checkCell(cell.field2)
?
这是我的代码:
<p:dataTable var="cell" value="#{mybean.mycells}" widgetVar="cell" emptyMessage="No cells" filteredValue="#{mybean.filteredCells}">
<p:column filterBy="#{cell.field1}" headerText="Field1" filterMatchMode="contains">
<h:outputText value="#{cell.field1}" />
</p:column>
<p:column headerText="Checkbox">
<p:selectBooleanCheckbox value="#{cell.check}" partialSubmit="true">
<p:ajax process="@this" partialSubmit="true" update=":form:messages" listener="#{mybean.checkCell(cell.field2)}" onstart="PF('statusDialog').show();" oncomplete="PF('statusDialog').hide();" />
</p:selectBooleanCheckbox>
</p:column>
</p:dataTable>
答案 0 :(得分:0)
每次单击复选框时,您都在更新update =“:form:messages”中指定的组件。我猜“messages”ID属于数据表所在的容器。如果不对,我不会忽略为什么databled会更新。如果是正确的,只需删除更新属性或更新内部不包含数据表的内容。