3

ポーリングがテーブルを更新している間、ソートとフィルタリングを保持しようとしています。残念ながら、私はそれを行うことができませんでした。

ポーリングによって dataTable が 2 秒ごとまたは任意の間隔で更新されると、フィルター値が削除され、列をクリックすると、列ヘッダーが何回クリックされても昇順でのみ並べ替えられます。また、並べ替えの矢印は常に「降順」と表示されます。

何か見落としがない限り、これは dataTable のバグだと思います。

これを見て、これがバグなのか、私の実装が間違っているのか教えてください。私はこれを数日間機能させようとしています。どんな助けでも大歓迎です。

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml"
               xmlns:ui="http://java.sun.com/jsf/facelets"
               xmlns:h="http://java.sun.com/jsf/html"
               xmlns:f="http://java.sun.com/jsf/core"
               xmlns:p="http://primefaces.prime.com.tr/ui">

            <f:view contentType="text/html">

               <h:head>
               </h:head>

               <h:body>

                  <h:form id="pollForm">
                     <p:poll id="poll" widgetVar="pollVar" interval="2"
                        listener="#{tableBean.update}" async="true" autoStart="true" />
                  </h:form>

                  <h:form>

                     <p:outputPanel autoUpdate="true">
                        <p:dataTable var="car" value="#{tableBean.carsSmall}">
                           <f:facet name="header">  
                              Ajax Sorting  
                          </f:facet>

                           <p:column sortBy="#{car.model}">
                              <f:facet name="header">
                                 <h:outputText value="Model" />
                              </f:facet>
                              <h:outputText value="#{car.model}" />
                           </p:column>

                           <p:column sortBy="#{car.year}">
                              <f:facet name="header">
                                 <h:outputText value="Year" />
                              </f:facet>
                              <h:outputText value="#{car.year}" />
                           </p:column>

                           <p:column sortBy="#{car.manufacturer}" 
                              filterBy="#{car.manufacturer}">
                              <f:facet name="header">
                                 <h:outputText value="Manufacturer" />
                              </f:facet>
                              <h:outputText value="#{car.manufacturer}" />
                           </p:column>

                           <p:column sortBy="#{car.color}">
                              <f:facet name="header">
                                 <h:outputText value="Color" />
                              </f:facet>
                              <h:outputText value="#{car.color}" />
                           </p:column>
                        </p:dataTable>
                     </p:outputPanel>
                  </h:form>

               </h:body>

            </f:view>
            </html>
4

1 に答える 1

0

dataTable に Id を付与してから、dataTableId.filter を呼び出してみてはいかがでしょうか? わたしにはできる。

<p:poll id="pollAutoUpdate" interval="5" oncomplete="entityTable.filter()" autoStart="false" stop="true" widgetVar="myPoll" />
于 2013-08-08T05:25:34.653 に答える