0

我有一个使用视图作为数据源的重复控件,其中包含一个自定义控件。自定义控件由一个带有两个表格的面板组成。一个表具有带有“编辑”按钮的计算字段,另一个具有带有“保存”和“取消”按钮的可编辑字段。Edit 和 Cancel 按钮根据需要工作,但 Save 按钮给出 NotesDocument.save() is null 错误。通过注释掉之前的所有行,我已经将问题缩小到 edoc.save() 行上发生的错误。我什至试图做一个 edoc.lock(),但得到了同样的错误。

var edoc:NotesDocument = database.getDocumentByUNID(viewScope.get('docid'));
edoc.replaceItemValue('Ext_1',viewScope.get('ext_1'));
edoc.replaceItemValue('DID',viewScope.get('did'));
edoc.replaceItemValue('Mobile',viewScope.get('mobile'));
try {
edoc.save();
} catch(e) {
print(e.toString());
}
4

1 回答 1

1

在 viewScope 中存储 DocID 和重复控件似乎不正确。您想向自定义控件添加一个名为 DocID 的自定义属性,而不是

    database.getDocumentByUNID(viewScope.get("docid"));

你做:

    database.getDocumentByUNID(compositeData.DocID);

这是您可以确保获得该行的该视图中的文档。您还可能会考虑,而不是所有手动步骤(您注释掉的那些)有一个带有 DocumentDataSource 的面板,然后只需将您的输入字段绑定到该面板。通过自定义属性和“IgnoreRequestParameter = true

然后您只需执行 rowDoc.save() (假设您将数据源命名为 rowDoc)并且您不需要回收任何东西。让我们知道怎么回事。

于 2013-05-17T16:05:42.777 回答