首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改背景文档时,如何在XPages中刷新数据源?

问更改背景文档时,如何在XPages中刷新数据源?
EN

Stack Overflow用户
提问于 2015-08-25 17:21:35
回答 3查看 1K关注 0票数 0

如果从数据源获取NotesDocument对象,更改一些字段,然后保存数据源,而不直接保存NotesDocument,则不会保存更改。

例如:

代码语言:javascript
复制
var doc:NotesDocument = document1.getDocument(true);
doc.replaceItemValue("TestField", "Test");

我使用简单的操作保存数据源,文档中的字段"TestField“为空。

如何使用背景文档中的更改更新数据源?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-25 20:17:02

史蒂夫是对的,如果您想更新后端文档并将其反映在DominoDocument包装数据源上,则需要保存。

但是根据你的回答,你为什么要更新后端文档呢?用document1.replaceItemValue("TestField", "test")更新DominoDocument似乎更有意义。

在queryNewDocument中,不存在后端文档。在document1.save()期间,代码将有效地调用database.createDocument(),然后将所有字段从document1写入到新创建的文档对象上。如果之前创建了一个文档对象,那么您就会遇到在对Steve的答复的评论中出现的问题--如果取消了保存,需要删除Document对象。

票数 5
EN

Stack Overflow用户

发布于 2015-08-25 17:33:37

在SSJS中,必须显式保存后端文档。要做到这一点,只需添加一行以保存文档更改。我不知道为什么这个简单的操作不适用于您,但是添加这一行,您的“测试字段”将被更新。

代码语言:javascript
复制
doc.save();
票数 2
EN

Stack Overflow用户

发布于 2015-08-26 15:25:34

我想将Authors字段添加到文档中,并在queryNewDocument事件中这样做。

代码语言:javascript
复制
document1.replaceItemValue("Authors", authors);
var doc:NotesDocument = document1.getDocument(true);
    if (doc != null) {
        var Authors:NotesItem = doc.getFirstItem("Authors");
        Authors.setAuthors(true);
    }

但是,如果我不保存with doc.save()并且只在末尾执行document1.save(),那么字段'Authors‘将保留一个通常的文本字段。我不想在用户单击“保存”按钮之前保存文档。

是否有更好的方法将作者字段添加到新文档中?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32210284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档