通过Primefaces中的视图保持DataTable状态

时间:2016-04-15 12:14:47

标签: jsf primefaces

首先:这里不是母语为英语的人,很抱歉,如果我有时候听起来有些混乱。

当我浏览应用程序中的不同视图时,我正在寻找一种方法来持久化DataTable(显示查询结果列表)状态(换句话说,它不是Ajax调用),换句话说:我需要使用DataTable渲染一个与上一个视图完全相同的新页面。你应该知道的第一件事是我有办法使用ELFlash.getFlash().put(param, obj)通过我的视图传输对象,所以我的问题不是恢复对象。

我能够使用所有以前的结果列表打开DataTable而没有任何问题...但是它有一个分页器,我本来应该到第二个视图不仅查询结果而且还打开了相同的之前的页面。

我已经尝试将当前页码保留在一个对象中,并在post结构中添加一个代码来将paginator更改为该页面,但它没有工作:

DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent(":form:dataTable");
String javaScript = "PF('widgetVarName').getPaginator().setPage(" + this.pageNumber + ")";
RequestContext.getCurrentInstance().execute(javaScript);

最令人遗憾的是它在post构造中没有工作,DataTable也没有在右页打开,但如果我在另一个按钮中调用此代码,则在页面已经渲染之后,它有效。

你们有任何想法吗?

0 个答案:

没有答案