我在表单中有一个p:treeTable
,在另一个表单中有一个p:dialog
,其中p:dialog
我将数据添加到p:treeTable
提交对话框的h:commandButton
我添加了p:treeTable
的更新,以便查看已添加的节点
问题是用户打开的所有扩展节点都将崩溃
我发现这个问题Avoiding the collapsing of p:treeTable after update在他写的问题中解决了,但没有回答或解决他的问题
答案 0 :(得分:15)
为避免折叠或展开,您必须将Java端的节点标记为折叠或展开。为此,只需添加一些ajax调用和一些侦听器方法。
JSF /面孔:
<p:tree ...>
<p:ajax event="expand" listener="#{backing.nodeExpand}" />
<p:ajax event="collapse" listener="#{backing.nodeCollapse}" />
...
</p:tree>
的Java /基材:
public void nodeExpand(NodeExpandEvent event) {
event.getTreeNode().setExpanded(true);
}
public void nodeCollapse(NodeCollapseEvent event) {
event.getTreeNode().setExpanded(false);
}
答案 1 :(得分:1)
根据PrimeFaces Tree Events Showcase,您忘记使用更新声明。
答案 2 :(得分:1)
如果您尝试在树中调用任何操作或actionListener,您需要花费所有节点和父母,如果您不这样做,那么这只是不工作并且不会显示任何错误。< / p>
node.setExpanded(true);
node.getParent().setExpanded(true);