我有一个重复控制绑定到视图数据源。XPages获取句柄以重复控制文档
在每一行中,我都有一个链接,当按下时,我想用几个字段值更改来标记后端文档,然后保存这些更改。如果发生保存错误,我想告诉用户,我希望重复存在的面板可以刷新。
如何获取与该行关联的文档并测试保存是否有效?
我有一个重复控制绑定到视图数据源。XPages获取句柄以重复控制文档
在每一行中,我都有一个链接,当按下时,我想用几个字段值更改来标记后端文档,然后保存这些更改。如果发生保存错误,我想告诉用户,我希望重复存在的面板可以刷新。
如何获取与该行关联的文档并测试保存是否有效?
尝试调用保存的文档,而不是视图数据来源:
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);
几乎有,但后端文件没有变化: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);
我很好奇,如果脚本得到一个句柄文件。如果你没有VAR =“数据”中的重复控制,它从来没有得到一个句柄文档。
更大的问题是,你永远不会发出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();
一旦你真的保存了它,那么你可以看看数据源,看看它是否保存。如果它全部在同一个数据库中,我认为这将会过度。
希望能做到。
你应该通过编辑它来解决你的问题。 – Naveen 2013-03-06 11:49:58
@ user1753622,我认为重要的部分是脚本是否处理文档。你可以包括重复控制?如果控件中没有var =“data”,则它永远不会获得文档的句柄。 此外,你永远不会发出一个doc.Save,你保存一个不同的对象。 – 2013-03-06 16:12:04
您对后端文档进行了更改,但保存了数据源。你有尝试过doc.save()吗? – 2013-03-07 12:16:24