更改背景文档时如何刷新 XPages 中的数据源?
How to refresh the datasource in XPages, when you change background document?
如果我从数据源中获取 NotesDocument 对象,更改一些字段然后保存数据源,而不直接保存 NotesDocument,则不会保存更改。
例如:
var doc:NotesDocument = document1.getDocument(true);
doc.replaceItemValue("TestField", "Test");
我用简单的操作保存了数据源,文档中的字段 "TestField" 是空的。
如何使用后台文档中的更改更新数据源?
在 SSJS 中,您必须显式保存后端文档。为此,只需添加一行以保存文档更改。我不确定为什么这个简单的操作对你不起作用,但是添加这行你的 "Test Field" 将会更新。
doc.save();
史蒂夫说得对,如果您想更新后端文档并将其反映在 DominoDocument 包装器数据源上,您需要保存。
但是根据您的回答,您为什么要尝试更新后端文档?用 document1.replaceItemValue("TestField", "test")
.
更新 DominoDocument 似乎更有意义
queryNewDocument 中不存在后端文档。在 document1.save()
期间,代码将有效调用 database.createDocument()
,然后将 document1
中的所有字段写入新创建的 Document 对象。如果之前创建了 Document 对象,您会遇到您在评论 Steve 的回答时提出的问题 - 如果取消保存,则需要删除 Document 对象。
我想将 Authors 字段添加到文档中,我在 queryNewDocument 事件中进行了此操作。
document1.replaceItemValue("Authors", authors);
var doc:NotesDocument = document1.getDocument(true);
if (doc != null) {
var Authors:NotesItem = doc.getFirstItem("Authors");
Authors.setAuthors(true);
}
但是如果我不使用 doc.save() 保存并且只在最后执行 document1.save(),那么字段 'Authors' 将保留为普通的文本字段。
我不想在用户点击保存按钮之前保存文档。
有没有更好的方法将 Authors 字段添加到新文档?
如果我从数据源中获取 NotesDocument 对象,更改一些字段然后保存数据源,而不直接保存 NotesDocument,则不会保存更改。
例如:
var doc:NotesDocument = document1.getDocument(true);
doc.replaceItemValue("TestField", "Test");
我用简单的操作保存了数据源,文档中的字段 "TestField" 是空的。
如何使用后台文档中的更改更新数据源?
在 SSJS 中,您必须显式保存后端文档。为此,只需添加一行以保存文档更改。我不确定为什么这个简单的操作对你不起作用,但是添加这行你的 "Test Field" 将会更新。
doc.save();
史蒂夫说得对,如果您想更新后端文档并将其反映在 DominoDocument 包装器数据源上,您需要保存。
但是根据您的回答,您为什么要尝试更新后端文档?用 document1.replaceItemValue("TestField", "test")
.
queryNewDocument 中不存在后端文档。在 document1.save()
期间,代码将有效调用 database.createDocument()
,然后将 document1
中的所有字段写入新创建的 Document 对象。如果之前创建了 Document 对象,您会遇到您在评论 Steve 的回答时提出的问题 - 如果取消保存,则需要删除 Document 对象。
我想将 Authors 字段添加到文档中,我在 queryNewDocument 事件中进行了此操作。
document1.replaceItemValue("Authors", authors);
var doc:NotesDocument = document1.getDocument(true);
if (doc != null) {
var Authors:NotesItem = doc.getFirstItem("Authors");
Authors.setAuthors(true);
}
但是如果我不使用 doc.save() 保存并且只在最后执行 document1.save(),那么字段 'Authors' 将保留为普通的文本字段。 我不想在用户点击保存按钮之前保存文档。
有没有更好的方法将 Authors 字段添加到新文档?