Pierwsze kroki: ustaw stronę na datatable
Mam datatable w primefaces i chcę, gdy dodam w nim wiersz, wyświetl ostatnią stronę datatable.
Moja strona .xhtml to:
<code><h:form id=...> ... <p:dataTable var="webTemplate" id="templateTable" widgetVar="tbl1"/> ... </h:form> <h:form id=...> ... <p:inputText id="txt_description" value="#{templateController.templateDescription}" label="templateDescription"> <f:validateLength for="txt_name" minimum="1"/> <p:ajax event="change" listener="#{calculatePageTable.setPageTableTemplate}" onsuccess="setTabIndexTT()"/> </p:inputText> ... </h:form> <script type="text/javascript"> function setTabIndexTT(){ tbl1.getPaginator().setPage(#{calculatePageTable.pageTableTemplate}); } </script> </code>
fasola:
<code>@ManagedBean @SessionScoped public class CalculatePageTable { private int pageTableTemplate = 0; private int pageTableField = 0; public void setPageTableTemplate() { final DataTable d = (DataTable) FacesContext.getCurrentInstance().getViewRoot() .findComponent("form:templateTable"); pageTableTemplate = d.getPageCount() - 1; } public int getPageTableTemplate() { return pageTableTemplate; } public void setPageTemplateField() { final DataTable d = (DataTable) FacesContext.getCurrentInstance().getViewRoot() .findComponent("detailsTable:webTemplateUpdateTable"); pageTableField = (d.getPageCount() - 1); } public int getPageTableField() { return pageTableField; } } </code>
Ale funkcja js setTabIndexTT () nigdy nie jest wywoływana przez onsuccess ajax ...
Jak mogę ustawić ostatnią stronę mojej datatable podczas dodawania wiersza?
Wersja Primefaces to 3.1.1