Tengo un Datatable con la paginación y quiero cambiar la página actual con un commandlink fuera de la tabla de datos, cómo puedo conseguirlo?

<p:commandLink title="changePage" action="#{myBean.changeMethod}"
   update="myDataTable" />
<p:dataTable id="myDataTable" var="myItem" paginator="true" rows="1"
   value="#{myBean.ListOfItem}" binding="#{myBean.DataTable}">
  ...
  ...
</p:dataTable>

Saludos!

InformationsquelleAutor Alavaros | 2013-07-09

3 Comentarios

  1. 13

    De esta forma se establecerá la página de la tabla a la primera

    public void changeMethod() {
    final DataTable d = (DataTable) FacesContext.getCurrentInstance().getViewRoot()
        .findComponent("myDataTable");
    int first = 0;
    d.setFirst(first);

    }

    O en el lado del cliente:

    widgetVar.getPaginator().setPage(pageindex);

    EDICIÓN : La «primera» atributo indica el índice de la primera fila se muestra

    • Gracias por la respuesta! Es bueno saberlo, pero lo que realmente quiero establecer cualquier página. El <p:commandLink ... /> es en otros datatable, cuando hago clic en commandLink, puedo saber lo que el número de la página, ¿hay alguna manera de configurar la página con ese número? Saludos.
    • Oh Wait!!! Todo lo que necesitas está en tu respuesta, pensé que con setFirst de cambiar el paginator, yo sólo hice d.setFirst(numberOfPage). Gracias!!! PD: tal vez si el nombre del método eran algo así como la setCurrentPage sería más intuitivo.
    • Thank U por lo tanto, guarda mi día
  2. 2

    Es ok, pero ahora en primefaces 5.1 en el lado del cliente que usted tiene que hacer como:

    PF('widgetVar').getPaginator().setPage(pageindex);
  3. 1

    Para mí funciona muy agradable, pero usted tiene que escribir todo el nombre del componente

    FacesContext.getCurrentInstance().getViewRoot().findComponent("form:panel:datatable");

Dejar respuesta

Please enter your comment!
Please enter your name here