XPages获取重复控件文档的句柄

时间:2013-03-06 10:19:57

标签: xpages xpages-ssjs

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

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

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

3 个答案:

答案 0 :(得分:0)

几乎没有,但后端文档没有变化: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 );

答案 1 :(得分:0)

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

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);

答案 2 :(得分:0)

我很好奇脚本是否正在处理文档。如果在重复控件中没有var =“data”,它永远不会获得doc的句柄。

更大的问题是,你永远不会发出doc.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();

实际保存后,您可以查看数据源以查看是否已保存。如果它们都在同一个数据库中,我认为这样就太过分了。

希望能做到。