在我的代码中,我在左框架中展开了通过右框架中存在的导航链接选择的treeNode。它工作,但每次我点击右框架上的链接,我必须手动刷新右框架。我尝试使用javascript代码从支持bean重新加载页面,但它无法正常工作。任何人都可以帮我弄清楚它为什么没有被执行。
先谢谢你帮助我。
以下是我正在使用的代码。
public void expandTreeView( TreeNode selectedNode )
{
if ( selectedNode != null )
{
selectedNode.getParent().setExpanded( true );
}
RequestContext rc = RequestContext.getCurrentInstance();
rc.execute("window.location.reload(true)");
}
答案 0 :(得分:1)
您需要将JS函数与remoteCommand结合使用,它将如下所示:
<强> myHTML.xhtml 强>
<p:commandLink id="commandLink" onclick="myFunction(nodeSelected)" >
...
</p:commandLink>
还添加一个JS函数
<script type="text/javascript">
function myFunction(x) {
...
}
</script>
最后将它与p:remoteCommand
结合起来,它允许你从JS函数调用一个managedBean方法
您可以看到Primefaces remoteCommand Example或只是查看此SO帖子Invoking a p:remoteCommand via a JavaScript function passing a message local to that function to another function through the “oncomplete” handler
希望能帮到你。