从支持 bean 重新加载页面
Reload page from backing bean
在我的代码中,我正在扩展左框架中的 treeNode,它是通过右框架中存在的导航 links 选择的。它有效,但每次我单击右框架上的 link 时,我都必须手动刷新右框架。我尝试使用 javascript 代码从支持 bean 重新加载页面,但它不起作用。谁能帮我弄清楚为什么它没有被执行。
在此先感谢您的帮助。
下面是我正在使用的代码。
public void expandTreeView( TreeNode selectedNode )
{
if ( selectedNode != null )
{
selectedNode.getParent().setExpanded( true );
}
RequestContext rc = RequestContext.getCurrentInstance();
rc.execute("window.location.reload(true)");
}
你需要结合一个 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 or simply look to this SO post
希望对你有所帮助。
在我的代码中,我正在扩展左框架中的 treeNode,它是通过右框架中存在的导航 links 选择的。它有效,但每次我单击右框架上的 link 时,我都必须手动刷新右框架。我尝试使用 javascript 代码从支持 bean 重新加载页面,但它不起作用。谁能帮我弄清楚为什么它没有被执行。
在此先感谢您的帮助。
下面是我正在使用的代码。
public void expandTreeView( TreeNode selectedNode )
{
if ( selectedNode != null )
{
selectedNode.getParent().setExpanded( true );
}
RequestContext rc = RequestContext.getCurrentInstance();
rc.execute("window.location.reload(true)");
}
你需要结合一个 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 or simply look to this SO post
希望对你有所帮助。