2013-03-06 54 views
0

我有一个重复控制绑定到视图数据源。XPages获取句柄以重复控制文档

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

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

回答

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

你应该通过编辑它来解决你的问题。 – Naveen 2013-03-06 11:49:58

+0

@ user1753622,我认为重要的部分是脚本是否处理文档。你可以包括重复控制?如果控件中没有var =“data”,则它永远不会获得文档的句柄。 此外,你永远不会发出一个doc.Save,你保存一个不同的对象。 – 2013-03-06 16:12:04

+0

您对后端文档进行了更改,但保存了数据源。你有尝试过doc.save()吗? – 2013-03-07 12:16:24

0

我很好奇,如果脚本得到一个句柄文件。如果你没有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(); 

一旦你真的保存了它,那么你可以看看数据源,看看它是否保存。如果它全部在同一个数据库中,我认为这将会过度。

希望能做到。