2017-07-23 214 views
0

我有一個按鈕應該改變所選文檔的字段值從一個viewpanel。但無論我做什麼,我也切換了複選框所在的列,我總是得到0個ID。viewPanel.getSelectedIds返回0

這裏是我的viewPanel:

<xp:viewPanel rows="30" id="viewPanel1" pageName="/Account.xsp" var="rowData"> 
    <xp:this.facets> 
     <xp:pager partialRefresh="true" 
       layout="FirstImage PreviousImage SeparatorPage Group NextImage LastImage" 
       xp:key="headerPager" id="pager1" alwaysCalculateLast="true"> 
     </xp:pager> 
    </xp:this.facets> 
    <xp:this.data> 
     <xp:dominoView var="view1" viewName="Konten\Fehler"> 
     <xp:this.search><![CDATA[#{javascript:return viewScope.get("searchString");}]]></xp:this.search> 
     </xp:dominoView> 
    </xp:this.data> 

    <xp:viewColumn id="viewColumn10" columnName="$errCodes"> 
     <xp:this.facets> 
      <xp:viewColumnHeader xp:key="header" id="viewColumnHeader10" value="Fehler"> 
      </xp:viewColumnHeader> 
     </xp:this.facets> 
    </xp:viewColumn> 
    <xp:viewColumn id="viewColumn9" styleClass="total"> 
     <xp:this.facets> 
      <xp:viewColumnHeader xp:key="header" id="viewColumnHeader9"> 
      </xp:viewColumnHeader> 
     </xp:this.facets> 
     <xp:this.value><![CDATA[#{javascript:if(rowData.isCategory()) 
{ 
    return rowData.getColumnValue("$11") 
}}]]></xp:this.value> 
     <xp:this.converter> 
      <xp:convertNumber type="number" integerOnly="true"> 
      </xp:convertNumber> 
     </xp:this.converter> 
    </xp:viewColumn> 
    <xp:viewColumn id="viewColumn8" columnName="accountnumber" displayAs="link"> 
     <xp:this.facets> 
      <xp:viewColumnHeader xp:key="header" id="viewColumnHeader8" value="Konto" sortable="true"> 
      </xp:viewColumnHeader> 
     </xp:this.facets> 
    </xp:viewColumn> 
    <xp:viewColumn columnName="iban" id="viewColumn1" showCheckbox="true"> 
     <xp:viewColumnHeader value="IBAN" id="viewColumnHeader1" sortable="true"> 
     </xp:viewColumnHeader> 
    </xp:viewColumn> 
    <xp:viewColumn columnName="accounttype" id="viewColumn2"> 
     <xp:viewColumnHeader value="Typ" id="viewColumnHeader2"> 
     </xp:viewColumnHeader> 
    </xp:viewColumn> 
    <xp:viewColumn id="viewColumn7" columnName="$info"> 
     <xp:this.facets> 
      <xp:viewColumnHeader xp:key="header" id="viewColumnHeader7" value="Fehlermeldung" sortable="true"> 
      </xp:viewColumnHeader> 
     </xp:this.facets> 
    </xp:viewColumn> 
</xp:viewPanel> 

和按鈕

<xp:button value="Ausblenden" id="button1" styleClass="btn-info"> 
    <xp:eventHandler event="onclick" submit="true" refreshMode="norefresh"> 
     <xp:this.action> 
      <![CDATA[#{javascript: 
      var viewPanel = getComponent("viewPanel1"); 
      var docIDArray = viewPanel.getSelectedIds(); 
      for(i=0; i < docIDArray.length; i++) 
      { 
       var docId = docIDArray[i]; 
       var doc:NotesDocument = database.getDocumentByID(docId); 
       doc.replaceItemValue("$shErr", 0); 
       doc.save(); 
      } 
     }]]> 
     </xp:this.action> 
    </xp:eventHandler> 
</xp:button> 

,但不知何故getSelectedIds根本沒有返回ID。 任何想法?謝謝你的時間!

+0

您發佈了按鈕操作代碼,但不是整個按鈕代碼。其餘的在哪裏? – shillem

+0

編輯帖子,所以現在所有的代碼都可用 – AWinkler

+0

當你說你得到0個ID你是指一個空的數組?如果添加'println('選擇的ids:'+ docIDArray);'在'docIDArray'賦值之後多米諾控制檯輸出什麼東西? – shillem

回答

0

如果你嘗試下面,你有什麼從unidArray?

var unidArray = new Array(); 
         for(i=0; i < docIDArray.length; i++) { 
         var unid=database.getDocumentByID(docIDArray[i]).getUniversalID(); 
          unidArray.push(unid); 
         }