首頁>Program>source

我正在將JSF 2.2与Primefaces 5.1一起使用.有一个啟用分頁功能的可編輯素面資料表.

           <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.正如您可以在下面的圖像中部分看到的那樣.

對於具有大量資料的大型表,這將匯致大量請求.這不是必需的吧?

最新回復
  • 5月前
    1 #

    確實,当您使用HTML提交表單時,預設情况下,每个HTML輸入元素都將作為請求引數發送. PrimeFaces Ajax元件因此提供了 partialSubmit="true" 然後將發送 only的屬性 process涵盖的HTML輸入元素 屬性,預設為 <p:ajax>@this 和在 <p:commandXxx>@form

    因此,只需將其添加到資料表中,以優化分頁效能:

    <p:ajax event="page" partialSubmit="true" />
    

    並將其添加到只需要訪問資料表中当前行的任何命令按钮(例如,在對话框中顯示它)即可優化動作處理效能:

    <p:commandButton ... process="@this" partialSubmit="true" />
    

    您也可以通過下面的上下文引數在 web.xml中全域性配置它 :

    <context-param>
        <param-name>primefaces.SUBMIT</param-name>
        <param-value>partial</param-value>
    </context-param>
    

    然後在實際需要完整提交的情况下,顯式使用 partialSubmit="false"

  • google maps:Android:如何捕获GPS位置圖像
  • vbscript:如何在ASP Classic中使用cURL發佈資料?