2016-07-23 3 views
2

私は部分リフレッシュのための機能を持っていました。別のページのIDを渡して再利用したいのですが、うまくいきません。私はこのスクリプトを間違っていたのですか、またはpartialrefreshは変数を除いてできませんでしたか?partialrefreshPostと変数を渡す

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

「それは機能しません」とはどういう意味ですか? – tmthydvnprt

+0

私は期待どおりに更新されなかったことを意味し、エラーメッセージに応答します。 –

答えて

2

私はあなたのId変数が式言語"#{id:}"が計算された時点で定義されていないので、それが機能していないと信じています。

あなたのReloadPageId関数に `Id 'を渡すとき、既に計算されていなければなりません。このようなあなたのXPage上の入力タグを入れてみてくださいJavaScriptのクライアント側を使用して計算されたイドをつかむために:

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

その後は、このようなあなたの関数を呼び出す:

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

そして最後に、あなたの関数

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

はい、 "#{id:...}"はすでにサーバー上で計算されていますが、実行はクライアント側で行われます。入力フィールドを使用するのではなく、あなたのCSJSコードで必要なところで、 'ReloadPageId("#{id:theIdYouWant} ")という関数を呼び出すだけです。 –

+1

@KnutHerrmannそれを追加していただきありがとうございます。スクリプトライブラリで評価されない "#{id:...}"の回避策として、入力フィールドを使用するという習慣がありました。 – jpishko

+0

スクリプト・ライブラリーでの使用には良い点があります。 –