这不是重复的帖子,我只是做了研究,但没有帮助。

首先,这是我的页面...简化以方便阅读。

            <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> 

当我点击某个树节点时,任务列表表单将呈现,但 View 状态将消失,这使得 dataScroller 需要 点击两次 到下一页/上一页,因为第一次点击是取回 ViewState 值。

我在这里检查了 JIRA - http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-790 .

试过 render="@all"或 render="treeForm, taskListTableForm",都失败了。我等不及 mojarra 发布 2.2。那么这里有什么解决方法吗?

非常感谢。 JIRA 太难理解了。

已编辑:还有另一个问题,如果我单击树节点,页面会在数据表中从 1 变为 2。为什么?

请您参考如下方法:

我知道你可能解决了这个问题,但为了将来引用,this应该向其他人提供解决方案。


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!