2012-09-17 76 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