2012-09-17 104 views
1

我有一個顯示可用聯繫人列表的dijit。所選聯繫人隨後顯示在通過局部刷新更新的視圖面板中,直到我添加了一些代碼以檢查未選擇重複聯繫人。現在面板不會刷新。有任何想法嗎?Xpages部分刷新停止工作

這是檢查duplciates的SSJS。對不起,如果我沒有正確地解釋這個問題,或者如果有一個非常簡單的解決方案來解決這個問題 - 在這裏完全沒有問題。

var viewPanel=getComponent("viewPanel1"); 
var docIDs=viewPanel.getSelectedIds(); 

for(i=0 ; i < docIDs.length ; i++){ 

    var docId = docIDs[i]; 

    var doc:NotesDocument = database.getDocumentByID(docId); 
     // Get Contact Details from document 
    var FName = doc.getItemValueString("Org_Con_FirstName"); 
    var LName = doc.getItemValueString("Org_Con_SurName"); 
    var FullName = FName + " " + LName; 
    var Phone = doc.getItemValueString("Org_Con_Phone"); 
    var Email = doc.getItemValueString("Org_Con_Email"); 
    var Unid = doc.getUniversalID(); 

    var checkView = database.getView("oppContacts"); 
    var checkCollection = checkView.getAllDocumentsByKey(sessionScope.oppKey); 
    var checkCount = checkCollection.getCount(); 
    var counter = 0; 
    if(checkCount != 0){ 
     var checkDoc = checkCollection.getFirstDocument(); 
     while(checkDoc!=null){ 
      var checkEmail = checkDoc.getItemValueString("Email") 
      if(checkEmail==Email) counter = counter + 1; 
      var tempDoc = checkCollection.getNextDocument(); 
      checkDoc.recycle(); 
      checkDoc = tempDoc; 
     } 
    } 


    if(counter==0){ 
     var oppContact = database.createDocument(); 

     oppContact.replaceItemValue("Form","oppContact"); 
     oppContact.appendItemValue("ContactName",FullName); 
     oppContact.appendItemValue("Email", Email); 
     oppContact.appendItemValue("Phone", Phone); 
     oppContact.appendItemValue("FullContact",Unid); 
     oppContact.appendItemValue("OpportunityKey", sessionScope.oppKey); 

     oppContact.save(); 

    } 

} 
+0

我會做的第一件事是圍繞該代碼添加一個try/catch塊來查看它是否不會引發任何錯誤。 –

+1

它沒有拋出任何錯誤。代碼是添加聯繫人,但我需要執行兩次或刷新瀏覽器來更新視圖,並將按鈕設置爲完全更新不起作用:-( – brtweed

+0

我從'var checkView = database'中刪除了所有內容'if(counter)....' - 部分刷新工作。我放棄:-( – brtweed

回答

1

嘗試在腳本末尾返回true,繼續使用部分刷新面板的服務器選項。如果它遇到錯誤,那麼它將返回false。

enter code here //在代碼的開頭 var bResult = false;

// inside if-statement : if (counter==0){ 
bResult = oppContact.save(); 

// at the end check bResult by setting sessionScope (using debug toolbar :-) 
sessionScope.bResult = bResult; 
// return true, hopefully 
return bResult; 

您的代碼是否產生新文檔? 希望這有助於...

+0

文檔正在創建,但它們不會出現在視圖表中 - 通過局部刷新進行更新。我必須手動刷新整個頁面 – brtweed