我正在使用JSF 2.2和Primefaces 5.1。有一个启用分页的可编辑Primefaces数据表格。
每次页面更改时,数据表格都会使用当前页面的所有数据进行AJAX POST。如下图所示。
对于具有大量数据的大型表格,这会导致巨大的请求。这不是必要的,对吗?有没有一种方法可以改变这种行为?
<p:dataTable editMode="row"
editable="true"
value="#{usersBean.users}"
var="user" paginator="true" rows="20">
<p:ajax event="rowEditInit" onstart="handleRowEditInit(event,this);"/>
<p:column>
<p:rowEditor/>
</p:column>
<p:column headerText="Real name">
<p:cellEditor rendered="true">
<f:facet name="input">
<p:inputText value="#{user.realName}"/>
</f:facet>
<f:facet name="output">
<h:outputText value="#{user.realName}"/>
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="User name">
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{user.userName}"/>
</f:facet>
<f:facet name="output">
<h:outputText value="#{user.userName}"/>
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
每次页面更改时,数据表格都会使用当前页面的所有数据进行AJAX POST。如下图所示。
![enter image description here](https://istack.dev59.com/eXzAh.webp)
p:dataTable
和p:dialog
周围有一个h:form
。在数据表中,我注册了一个p:ajax
事件,单击一行以显示该对话框。这种更改是否也会影响此类请求的性能?这里不编辑页面行。 - Roland