在p:selectBooleanCheckbox中调用侦听器而不刷新Primefaces中的整个dataTable

时间:2016-08-11 07:19:01

标签: jsf-2 primefaces

我在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>

1 个答案:

答案 0 :(得分:0)

每次单击复选框时,您都在更新update =“:form:messages”中指定的组件。我猜“messages”ID属于数据表所在的容器。如果不对,我不会忽略为什么databled会更新。如果是正确的,只需删除更新属性或更新内部不包含数据表的内容。