tro*_*ble 3 datatable jquery jsf primefaces jsf-2
我的.xhtml数据库看起来像这样:
<p:dataTable var="category" value="#{beanView.categories}" paginator="true" rows="5"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="5,10" id="categoryDT" styleClass="categoryClass"
editable="true" lazy="false" rowKey="#{category.id}">
<!-- columns -->
<f:facet name="footer">
<p:commandButton id="btnNewCat"
oncomplete="jQuery('.categoryClass').find('span.ui-icon-pencil').last().click();"
actionListener="#{beanView.onNewCategory}"
update="categoryDT" icon="ui-icon-plus" title="New Category" value="New Category" ></p:commandButton>
</f:facet></p:dataTable>
Run Code Online (Sandbox Code Playgroud)
而我的bean beanView:
public void onNewCategory(final ActionEvent actionEvent) {
try {
int rowCount = dataTable.getRowCount();
int rowsPerPage = dataTable.getRows();
int lastPage = rowCount / rowsPerPage;
int rowFirst = (lastPage * rowsPerPage);
if (rowCount >= rowsPerPage) {
dataTable.setFirst(rowFirst);
dataTable.setPageLinks(lastPage + 1);
dataTable.setRowIndex(rowCount - 1);
} else {
....
}
....
}
}
Run Code Online (Sandbox Code Playgroud)
但这实际上不起作用!最后一页不会显示!
可以从bean中单击我的数据表的最后一页按钮吗?还是有另一种解决方法!
谢谢你的帮助
您可以通过oncomplete
commandButton 实现此目的:
<p:commandButton oncomplete="PF('dataTableWV').paginator.setPage(PF('dataTableWV').paginator.cfg.pageCount - 1);"/>
Run Code Online (Sandbox Code Playgroud)
或者从托管bean:
RequestContext.getCurrentInstance().execute("PF('dataTableWV').paginator.setPage(PF('dataTableWV').paginator.cfg.pageCount - 1);");
Run Code Online (Sandbox Code Playgroud)
注意:dataTableWV
是dataTable的widgetVar.