2016-06-02 18 views
0

Ich habe rich:datascroller für meine rich:dataTable die gut funktioniert, außer dass, wenn ich auf einer beliebigen Seitenzahl (sagen wir 5) bin und eine Suche (oder eine Operation was die dataTable rendert). Die Seitennummerierung zeigt immer noch Seite 5 an, aber ich möchte, dass sie auf die 1. Seite zurückgesetzt wird, wenn der Vorgang stattfindet.RichFaces: Wie setze ich die Seite in Datascroller nach Änderungen der Werte in DataTable

In diesem image, wenn ich auf Seite gehe 5 wieder auf Suche oder eine klare tun und suchen Sie erneut, die Paginierung noch auf Seite 5, nicht gesetzt ist zurück auf Seite 1.

Hier ist mein Code-Schnipsel :

<rich:datascroller id="prodDataScroller" for="prodClassificationOutputTable" 
        rows="100" maxPages="10" fastStep="3" renderIfSinglePage="false" 
        immediate="false" page="#{prodClassificationBean.firstPage}"> 
</rich:datascroller> 

<rich:dataTable id="prodClassificationOutputTable" border="0" 
       width="100%" columnClasses="col" headerClass="column-header" 
       style="overflow:auto;" rowClasses="odd,even" align="center" 
       value="#{prodClassificationBean.outputClassificationWrappers}" 
       var="prodClassificationRow" rows="100" rowKeyVar="row" immediate="true"> 
<!-- ... --> 
<rich:dataTable> 

Ich überprüfte andere Lösungen. Ich habe versucht, page Attribut für Datencroller zu implementieren, aber es scheint nicht zu funktionieren. Ich habe ein Attribut firstpage in Backing-Bean erstellt, die auf "1" gesetzt wird, wenn die Suche passiert, so dass das Seitenattribut von datascroller den Wert 1 hat. Aber es löst das Problem nicht.

Ich würde gerne wissen, wo ich falsch liege.

+0

Ich habe versucht, Lösungen von https://developer.jboss.org/thread/10566?start=0&tstart=0 aber nichts funktioniert – goyalshub1509

+0

1. Dies ist nicht ein Fehler. 2. Sie haben geschrieben, dass "nichts funktioniert" von jboss Forum, aber Sie haben hier "eine Antwort" eingefügt, die die 3. Antwort dort ist. –

Antwort

0

Ich konnte das Problem selbst lösen. Hier ist, was ich getan habe:

<rich:datascroller id="prodDataScroller" for="prodClassificationOutputTable" 
        rows="100" maxPages="10" fastStep="3" renderIfSinglePage="false" 
        binding="#{prodClassificationBean.scroller}">  
</rich:datascroller> 
<rich:dataTable id="prodClassificationOutputTable" border="0" width="100%" 
       columnClasses="col" headerClass="column-header" 
       style="overflow:auto;" rowClasses="odd,even" align="center" 
       value="#{prodClassificationBean.outputClassificationWrappers}" 
       var="prodClassificationRow" rows="100" rowKeyVar="row" immediate="true"> 

    <rich:column align="center" width="20%"> 
     <f:facet name="header"> 
      <h:outputText value="ID" /> 
     </f:facet> 
     <h:outputText style="font-weight:bold" value="#{prodClassificationRow.outputId}"/> 
    </rich:column> 

</rich:dataTable> 

Unter allen ist wichtig zu beachten binding="#{prodClassificationBean.scroller}" in datascroller.

Jetzt im Backing Bean:

public class ProdClassificationBean { 
    private transient HtmlDatascroller scroller; 
    //getter and setter for scroller 

    // inside the action operation() 
    if (scroller != null) { 
     scroller.setPage("1"); 
    } 
} // end of class