2013-03-06 53 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(); 

一旦你真的保存了它,那麼你可以看看數據源,看看它是否保存。如果它全部在同一個數據庫中,我認爲這將會過度。

希望能做到。