我有以下树,有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了。
答案 0 :(得分:0)
使用stackoverflow answer的引用将process="@this"
添加到命令按钮,解决了该问题。页面上的验证错误导致按钮操作中止,并且未执行INVOKE APPLICATION LOGIC
阶段。