2012-05-31 21 views
0

現在花了幾個小時就這個問題和我在我這裏黔驢技窮......XSP.partialRefreshGet - 不發送值,而不是觸發事件

可能有人請告訴爲什麼下面的不working:

剛在Domino 8.5.3服務器上創建了一個全新的數據庫所有的默認設置。

我希望發生的事情是「$$ xspsubmitvalue」應該包含「whatYouWantToSendHere」,但它是空的。

我使用的URL打開的XPage:/fresh.nsf/test.xsp?Open&Login

這是按下按鈕後,請求URL:

/fresh.nsf/test.xsp?Open&Login&$$ajaxid=view%3A_id1%3ArefreshMe 

,這是形式的數據:

$$viewid:!d6g1y5acmu! 

$$xspsubmitid:view:_id1:_id2 

$$xspexecid: 

**$$xspsubmitvalue:** 

$$xspsubmitscroll:0|0 

view:_id1:view:_id1 

會高度讚賞一些輸入!

謝謝!

/J

源碼

http://pastebin.com/nyQYaRUC

+0

不僅$$ xspsubmitvalue爲空,而且沒有任何事件被觸發! – jBoive

+0

我期望至少onStart和onComplete觸發,但沒有。沒有JavaScript錯誤。 – jBoive

回答

2

嗯,首先,我相信你有一個額外的 「{}」 中就有在調用partialRefreshGet函數的末尾 - partialRefreshGet只需要兩個參數,ID和選項對象,但這不是你的問題。

問題是,你有這一切都發生在一個按鈕,也正在做一個局部刷新 - 因爲部分刷新是異步的,並且只有一個局部刷新可能發生在一次,您的代碼執行部分衝突用按鈕點擊的動作做一個部分。在你的按鈕上設置submit =「false」,看看它是否有效。

+0

是的,這樣做! – jBoive

+0

我的複製粘貼嘗試解決另一個問題時有點被帶走。 謝謝! – jBoive

+0

不完全正確 - 通過使用* XSP.allowSubmit()*,您可以一次運行多個局部刷新。SCNR :-) –

2

您的按鈕的代碼是「損壞」的:它會觸發部分刷新,並且CSJS代碼將永遠不會執行。

更改此

<xp:eventHandler 
     event="onclick" 
     submit="true" 
     refreshMode="partial" 
     refreshId="refreshMe"> 

這個

<xp:eventHandler event="onclick" submit="false"> 

然後根據需要,將工作。

EDIT

普通CSJS代碼將被執行,而不是基於CSJS由於內部阻塞(存儲在XSP.lastSubmit時間戳)的局部刷新。

+0

不完全屬實 - CSJS代碼實際上會觸發,但在觸發按鈕事件期間會調用它 - 自從它被設置爲submit =「true」,按鈕的局部刷新已經被認爲是「正在進行中」,從而防止在按鈕的單擊事件的CSJS側期間以編程方式調用任何局部刷新。所以在技術上你的解決方案是正確的,但不是你說的原因。 –

+0

我的意思是CSJS觸發的部分刷新。 –