2017-06-29 3 views
1

J'utilise Primefaces datatable pour montrer aux utilisateurs avec des boutons radio pour faire la sélection, maintenant quand la page se charge, table montre la page 1 par défaut et 25 lignes par page [ce qui est attendu], ce que je veux maintenant est si l'utilisateur définit 25 lignes par page [par dropdown] et va dire 4ème page et sélectionne l'utilisateur, soumet le formulaire, maintenant quand la page a été rafraichie, je veux que l'utilisateur voit la table avec la page précédente (4ème et non 1er) et même non. de lignes par page (25 et non 10).Comment définir le numéro de page, les lignes par page de primefaces datatable?

Collage en dessous de mon datatable. [mon bean est ViewAccessscoped].

<p:dataTable id="tableid" var="result" 
          styleClass="supertable top75" 
          paginatorTemplate="{RowsPerPageDropdown} {CurrentPageReport} {LastPageLink} {NextPageLink} {PageLinks} {PreviousPageLink} {FirstPageLink}" 
          value="#{bean.datamodel}" 
          tableStyleClass="pdatatable-table" rows="10" 
          rowsPerPageTemplate="10,25,50,100" paginator="true" 
          emptyMessage="No Users are available" 

J'ai essayé la mise en « première » propriété de datatable en utilisant le code ci-dessous dans mon haricot, mais que din't travailler, c'est ce que j'ai essayé

ajouté ci-dessous événement dans xhtml

<p:ajax event="page" listener="#{bean.onPageChange}"></p:ajax> 

et méthode pour haricot

public void onPageChange(PageEvent event){ 

    pageindex=event.getPage(); 
    final DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("loginasform:homeDataTable"); 
    dataTable.setFirst(pageindex); } 

je ne reçois la valeur du haricot, mais il montre encore l'une page par défaut d lignes par page.

Je suis nouveau chez JSF et Primefaces, s'il vous plaît laissez-moi savoir si vous pouvez aider ici.

+0

Informations sur la version pour les questions 'requises'. J'aurais empêché la réponse ci-dessous – Kukeltje

Répondre

0

Pour rétablir l'état de votre datatable (comme avant l'actualisation) ...

Set p: attribut dataTable multiViewState = "true" (voir la démo Table State)

Et pourtant, si elle ne semble pas fonctionner, passez à @ViewScoped. Confirmez également la version des primitives que vous utilisez.

+1

Hey Dennis, je pense que cet attribut fonctionne avec primefaces 6 et j'ai les premières 5, je suis en fait près d'obtenir ce que je veux, affichera la réponse une fois que je suis confirmé avec les résultats – faizan

+0

poster la version info dans les réponses – Kukeltje