使用選項 「設置部分執行模式」 execMode="partial"
:
<xp:button
value="Cancel"
id="button2">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial"
refreshId="inputText1"
execMode="partial">
</xp:eventHandler>
</xp:button>
只有按鈕(按鈕2)被部分地執行=更新到服務器。不是那麼部分刷新的部分(例如inputText1)。這種方式inputText1值不會被髮送到服務器,服務器使用前面的數據呈現該部分。
有關此選項的更多信息,請參閱「Mastering XPages:XPages應用程序開發循序漸進指南和第二版」第920頁和後續內容。
作爲替代,您可以使用後端文檔中的值 重置刷新區域中的字段。使用var docOld = document1.getDocument()
獲得與「老」的價值觀後端文件,並與
document1.setValue("A", docOld.getItemValueString("A"))
分配舊值當前的數據源字段:
<xp:button
id="buttonCancelRestore"
value="Cancel Restore Values">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial"
refreshId="panelRefresh"
execMode="partial"
execId="buttonCancelRestore">
<xp:this.action><![CDATA[#{javascript:
var docOld = document1.getDocument();
document1.setValue("A", docOld.getItemValueString("A"));
document1.setValue("B", docOld.getItemValueString("B"));
}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
完美。謝謝! –
看來,如果我的面板中的一個字段進行部分刷新(我隱藏/顯示字段),這不起作用。如果發生部分刷新,並且單擊帶有execMode =「partial」的取消按鈕,則字段值不會恢復爲文檔上的值。你知道這個方法嗎? –
你可以只在客戶端執行隱藏/顯示字段嗎? –