當我嘗試將NotesXSPDocument傳遞給代理與runWithDocumentContext操縱一些字段,我從來沒有得到前端字段的新值。我嘗試了fullrefresh和partialrefresh。當我只打印字段值時,我成功地獲得了更改。NotesXSPDocument與代理runWithDocumentContext
這裏是一個XPage
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:panel id="thePanel">
<xp:this.data>
<xp:dominoDocument var="document" formName="from"></xp:dominoDocument>
</xp:this.data>
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="thePanel">
<xp:this.action><![CDATA[#{javascript:
var agent = database.getAgent("test");
agent.runWithDocumentContext(document.getDocument());
print("Value-->" + document.getDocument().getItemValueString("InMemReturn"));}]]>
</xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:inputText id="inputText1" value="#{document.InMemReturn}"></xp:inputText>
</xp:panel>
</xp:view>
這裏的一個例子是代理
Option Public
Option Declare
Sub Initialize
Dim session As New NotesSession
Dim doc As NotesDocument
Set doc = session.Documentcontext
doc.Appenditemvalue "InMemReturn", CStr(Now)
End Sub
我錯過了什麼?
是的。輸入字段將覆蓋返回值。將其更改爲計算字段,然後再試一次 – stwissel
但我需要輸入字段。代理運行之後,我可能不得不通過runWithDocumentContext更改文檔 – Pudelduscher