2016-07-23 53 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

我明白了,在腳本庫中使用的好點。 –