这不是一个重复的帖子,我只是做了研究但没有帮助。
首先,这是我的页面...简化以便于阅读。
<h:form id="treeForm">
<f:event type="preRenderView" listener="#{taskTreeBean.update}" />
<rich:tree id="tree" nodeType="#{node.type}" var="node"
value="#{taskTreeBean.rootNodes}" toggleType="client"
selectionType="ajax"
render="@all"
selectionChangeListener="#{taskTreeBean.selectionChanged}">
<rich:treeNode>
...
</rich:treeNode>
</rich:tree>
</h:form>
<h:form id="taskListTableForm">
<rich:dataTable id="taskListTable" styleClass="tasklist" keepSaved="true" value="#{taskListModel}" var="task"
rowClasses="odd-row, even-row" rows="3">
<rich:column>
...
</rich:column>
<f:facet name="footer">
<rich:dataScroller id="scroller" for="taskListTable" />
</f:facet>
</rich:dataTable>
</h:form>
当我点击某个树节点时,任务列表表单将呈现,但是viewstate将消失,这使得dataScroller需要两次点击到next / prev页面,因为第一次点击是返回ViewState值
我在这里查看了JIRA - http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-790。
尝试render =“@ all”或render =“treeForm,taskListTableForm”,都失败了。我等不及mojarra发布2.2。那么这里有解决方法吗?
非常感谢。 JIRA太难理解了。
编辑:还有一个问题,如果我点击树节点,页面会从dataTable中的1到2。为什么呢?
答案 0 :(得分:4)
我知道您可能已经解决了这个问题,但为了将来参考,this应该为其他人提供解决方案。
答案 1 :(得分:0)
我遇到了同样的问题,并通过将<f:ajax/>
替换为PrimeFaces 3.0中的<p:ajax/>
来解决此问题。有问题的页面没有其他PrimeFaces组件。我不知道它为什么会起作用,但希望它会在你的情况下。