2016-07-23 52 views
2

我有一个partialrefresh函数,并希望通过传递不同的页面的ID来重用它,但它不会工作。是我有这个脚本错误或partialrefresh不能除了变量?partialrefreshPost与传递变量

function ReloadPageId(Id) { 
    XSP.partialRefreshPost("#{id:" + Id + "}", {}); 
} 
+0

“它不会工作”是什么意思?请创建一个[最小,完整和可验证的示例](http://stackoverflow.com/help/mcve) – tmthydvnprt

+0

我的意思是它没有按预期刷新,要么回应任何错误消息。 –

回答

2

我相信这是行不通的,因为你的Id变量在表达式语言"#{id:}"计算的时间不确定。

当你将Id传入你的ReloadPageId函数时,它已经被计算出来了。

<input id="getID" type="hidden" value="#{id:theIdYouWant}" />

然后调用你的函数是这样的::

ReloadPageId(document.getElementById("getID").value);

并且最后你的函数使用客户端的JavaScript尝试把输入标签上您的XPage这样抢计算的标识看起来像这样:

function ReloadPageId(Id) { 
    XSP.partialRefreshPost(Id); 
} 
+0

是的,“#{id:...}”已经在服务器上计算出来了,而执行则在客户端上。而不是使用输入字段,只要在你的CSJS代码中使用'ReloadPageId(“#{id:theIdYouWant}”)''来调用函数。 –

+1

@KnutHerrmann感谢您的补充。我习惯于使用输入字段作为“#{id:...}”的解决方法,而不是在脚本库中进行评估。 – jpishko

+0

我明白了,在脚本库中使用的好点。 –