我有一个重复控件,使用视图作为数据源,在重复中使用自定义控件。自定义控件由带有两个表的面板组成。一个表使用“编辑”按钮计算字段,另一个表具有带“保存”和“取消”按钮的可编辑字段。 “编辑”和“取消”按钮根据需要工作,但“保存”按钮提供NotesDocument.save()为空错误。我已经通过注释掉所有先前的行,将问题缩小到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());
}
答案 0 :(得分:1)
在viewScope中存储DocID和重复控件似乎不对。您想要将自定义属性添加到名为DocID的自定义控件中,而不是
database.getDocumentByUNID(viewScope.get("docid"));
你这样做:
database.getDocumentByUNID(compositeData.DocID);
这是您可以确定您获得该视图中该行的文档。
您还可以考虑的是,而不是所有手动步骤(您注释掉的那些)都有一个带有DocumentDataSource的面板,然后简单地将输入字段绑定到那个。通过自定义属性和“IgnoreRequestParameter = true
然后你只需要一个rowDoc.save()(假设你命名了数据源rowDoc),你不需要回收任何东西。让我们知道它是怎么回事。