问题描述
我正在使用PrimeFaces 3.0.M4.我想在选择树节点时更新PrimeFaces布局单元的内容.我已将以下方法添加到备用bean中:
I am using PrimeFaces 3.0.M4. I want to update the contents of PrimeFaces layout unit on tree node selection. I have added the following methods to my backing bean:
public void setSelectedNode(TreeNode selectedNode) {
this.selectedNode = selectedNode;
this.selectedNode.setSelected(true);
}
public void onNodeSelect(NodeSelectEvent e) {
this.setSelectedNode(e.getTreeNode());
}
在视图中,我使用ajax触发onNodeSelect()
侦听器方法:
In the view I am using ajax to trigger the onNodeSelect()
listener method:
<p:tree id="tree" value="#{treeBean.root}" selection="#{treeBean.selectedNode}" var="node" selectionMode="single" dynamic="true" cache="false" >
<p:ajax listener="#{treeBean.onNodeSelect}" update="test" event="select"/>
<p:treeNode>
<h:outputText value="#{node}"/>
</p:treeNode>
</p:tree>
注意:该树在另一个PrimeFaces布局单元内.
Note: the tree is inside another PrimeFaces layout unit.
但是当我运行它时,根本没有调用onNodeSelect()
方法.这是怎么引起的,我该如何解决?
But when I run this, the onNodeSelect()
method is not called at all. How is this caused and how can I solve it?
推荐答案
update test
是什么意思?
您应该发布整个xhtml代码!另外,您不应该尝试更新整个layoutUnit,而应更新表单(update="myFormId"
或update=":myFormId"
),甚至更新表单内的面板,例如:update=":myFormId:myPanelId"
.
You should post your entire xhtml code! Also you should not try to update the entire layoutUnit but instead update your form (update="myFormId"
or update=":myFormId"
) or even a panel inside the form like this: update=":myFormId:myPanelId"
.
这篇关于p:未调用树节点选择事件侦听器方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!