Primefaces: Seite auf datatable setzen
Ich habe eine Datentabelle in Primefaces und möchte beim Hinzufügen einer Zeile die letzte Seite der Datentabelle anzeigen.
Meine .xhtml Seite ist:
<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>
Bohne:
<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>
Aber die js-Funktion setTabIndexTT () wird niemals von onsuccess ajax aufgerufen ...
Wie kann ich die letzte Seite meiner Datentabelle festlegen, wenn ich eine Zeile hinzufüge?
Primefaces-Version ist 3.1.1