primefaces更新树,节点扩展导致问题

时间:2014-08-12 21:17:26

标签: jsf-2 primefaces tree

我有以下树,有3种类型的节点。

<p:tree id="tree" value="#{treeViewBackingBean.root}"   
            var="item" 
            style="width:auto; ">

    <p:ajax event="expand" process="@this" listener="#{treeViewBackingBean.onNodeExpand}" />
    <p:ajax event="collapse" process="@this" listener="#{treeViewBackingBean.onNodeCollapse}" />

    <p:treeNode type="NegotiatingUnit" >
        ...
    </p:treeNode>
    <p:treeNode type="UnionHeader" >
        ...
    </p:treeNode>
    <p:treeNode type="Union" >
        ...
    </p:treeNode>
</p:tree>
<p:commandButton action="#{treeViewBackingBean.save}" update="tree" id="save" value="save" />

在节点扩展事件中,我将属性扩展为true,以便后期刷新节点保持扩展。

public void onNodeExpand(NodeExpandEvent event) {
    System.out.println("onNodeExpand() " + event + " event " + event.getTreeNode().isExpanded());
    event.getTreeNode().setExpanded(true);
}

这里的问题是,即使其中一个节点被扩展,保存按钮也不起作用?

在扩展事件上更改treenode对象会导致任何问题吗?如何解决这个问题。

我已经开始在JBoss EAP 6.1环境中使用primefaces 4了。

1 个答案:

答案 0 :(得分:0)

使用stackoverflow answer的引用将process="@this"添加到命令按钮,解决了该问题。页面上的验证错误导致按钮操作中止,并且未执行INVOKE APPLICATION LOGIC阶段。