Jquery 如何在Primefaces数据表中跳转到bean的最后一页?
我在.xhtml中有一个如下所示的数据表:Jquery 如何在Primefaces数据表中跳转到bean的最后一页?,jquery,jsf,jsf-2,primefaces,datatable,Jquery,Jsf,Jsf 2,Primefaces,Datatable,我在.xhtml中有一个如下所示的数据表: <p:dataTable var="category" value="#{beanView.categories}" paginator="true" rows="5" paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" rowsPerPag
<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>
但这实际上不起作用!最后一页将不显示
可以从bean中单击我的datatable的最后一页按钮吗?还是有别的办法解决呢
感谢您的帮助您可以通过命令按钮的
oncomplete
来实现这一点:
<p:commandButton oncomplete="PF('dataTableWV').paginator.setPage(PF('dataTableWV').paginator.cfg.pageCount - 1);"/>
注意:
dataTableWV
是dataTable的widgetVar。我只是补充了Hatem的答案
如果在成功向datatable添加/创建行且未发生验证错误时仅需要进行检查,则可以使用:
action="#{myBean.createSelection}"
oncomplete="if ( !args.validationFailed && args.created ) { PF('myDataTable').paginator.setPage(PF('myDataTable').paginator.cfg.pageCount - 1); }" />
oncomplete方法具有参数xhr
、status
和args
,控制器可以使用这些参数返回实际发生的情况
在上面的例子中,我们正在向datatable添加一些实体,如果验证没有失败并且创建了一个新实体,那么我们只想分页到最后一个实体,而不是在更新或删除时
在控制器中,您可以/应该执行以下操作:
public void createSelection()
{
T selectedEntity = getSelectedEntity();
T persistedEntity = null;
try
{
persistedEntity = getEntityService().create( selectedEntity );
}
catch ( CreateException e )
{
...
return;
}
...
PrimeFaces.current().ajax().addCallbackParam( "created", Boolean.TRUE );
}
尝试将oncomplete替换为:
PF('dataTableWV').paginator.setPage(PF('dataTableWV').paginator.cfg.pageCount-1)代码>哦!美好的这个有效!但是如何使用以下命令将:PF('widgetcategoryDT').paginator.setPage放入Bean:RequestContext.getCurrentInstance().execute('PF('widgetcategoryDT').paginator.setPage…')代码>哦,是的!!工作你能把它作为答案贴出来吗?所以我可以选择它!!?
action="#{myBean.createSelection}"
oncomplete="if ( !args.validationFailed && args.created ) { PF('myDataTable').paginator.setPage(PF('myDataTable').paginator.cfg.pageCount - 1); }" />
public void createSelection()
{
T selectedEntity = getSelectedEntity();
T persistedEntity = null;
try
{
persistedEntity = getEntityService().create( selectedEntity );
}
catch ( CreateException e )
{
...
return;
}
...
PrimeFaces.current().ajax().addCallbackParam( "created", Boolean.TRUE );
}