我有一個重複控制綁定到視圖數據源。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