XPages在repeat控件中获取文档句柄

XPages在repeat控件中获取文档句柄,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我有一个绑定到视图数据源的重复控件 在每一行中,我都有一个链接,按下该链接时,我希望在后端文档上标记一些字段值更改,然后保存这些更改。如果在保存时发生错误,我想告诉用户,否则我想刷新存在重复的面板 如何获取与行关联的文档并测试保存是否有效?几乎在那里,但后端文档没有更改:o( 重复控件内链接的我的代码 var doc:NotesDocument = data.getDocument(); var dt:NotesDateTime = session.createDateTime("Today")

我有一个绑定到视图数据源的重复控件

在每一行中,我都有一个链接,按下该链接时,我希望在后端文档上标记一些字段值更改,然后保存这些更改。如果在保存时发生错误,我想告诉用户,否则我想刷新存在重复的面板


如何获取与行关联的文档并测试保存是否有效?

几乎在那里,但后端文档没有更改:o(

重复控件内链接的我的代码

var doc:NotesDocument = data.getDocument();
var dt:NotesDateTime = session.createDateTime("Today");
dt.setNow();
doc.replaceItemValue("RcptDate", dt);
doc.replaceItemValue("RcptBy", sessionScope.get("customerBuyerName"));
doc.replaceItemValue("RcptStatus", "Receipted");

var dsName = "vdsReceipts.DATASOURCE";
var app = facesContext.getApplication();
var ds = app.getVariableResolver().resolveVariable(facesContext, dsName);
var ret = ds.save( facesContext, true );

尝试对文档而不是视图数据源调用save:

var doc:NotesDocument = data.getDocument();
var dt:NotesDateTime = session.createDateTime("Today");
dt.setNow();
doc.replaceItemValue("RcptDate", dt);
doc.replaceItemValue("RcptBy", sessionScope.get("customerBuyerName"));
doc.replaceItemValue("RcptStatus", "Receipted");
doc.save(true, false);

我很好奇脚本是否获得了文档的句柄。如果repeat控件中没有var=“data”,它就永远不会获得文档的句柄

更大的问题是,您从未发布过文档。保存时,您保存了另一个对象。因此,将保存添加到脚本的上半部分

var doc:NotesDocument = data.getDocument();
var dt:NotesDateTime = session.createDateTime("Today");
dt.setNow();
doc.replaceItemValue("RcptDate", dt);
doc.replaceItemValue("RcptBy", sessionScope.get("customerBuyerName"));
doc.replaceItemValue("RcptStatus", "Receipted");
doc.Save();
一旦你真的保存了它,你就可以查看数据源,看看它是否保存了。如果它都在同一个数据库中,我想那就太过分了


希望如此。

@user1753622,我认为重要的部分是脚本是否获得文档的句柄。如果没有var=“data”,是否可以包含重复控件在控件中,它从未获得文档的句柄。此外,您从未发出doc.Save,而是保存了另一个对象。您对后端文档进行了更改,但保存了数据源。是否改为尝试了doc.Save()?