2017-02-28 68 views
1

我是ExtJS的新手,我試圖實現一個組合框和'保存'按鈕,它將保存在我的網格中選擇的所有記錄的「boxStatus」(有一個用於選擇記錄的小複選框列,組合框的狀態)。我曾嘗試用下面Ajax調用:使用Ext.Ajax.request進行POST?

saveBulkBoxComments : function(){ 
    var formObj = this.getPositionPanel().getForm(); 
    var fieldValues = formObj.getFieldValues(); 

     Ext.Ajax.request({ 
     url: SAVE_BULK_BOX_COMMENTS_URL, 
     method: 'POST', 
     params: { 
      positionDate: this.parentRecordData.data.positionDate, 
      groupIds: this.parentRecordData.data.groupId, 
      boxStatus: fieldValues.boxStatus, 
      csrComment: fieldValues.csrComment 
     }, 
     success : function(response) { 
       //how do I update box status for all records selected? 
       this.loadPositions(); 
     }, 
     scope: this 
     }); 
} 

這裏是Java:

return getReturnValue(new Runnable() { 
     public void run() {  
      String groupIdList[] = groupIds.split(",");  
      String user = mercuryUserScreenNameGetter.getValue(request); 
      Date date = Utils.parseDate(positionDate, DATE_FORMAT); 
      Stream.of(groupIdList) 
       .forEach(groupId -> 
       positionsDataMediator.addBoxAnnotation(date,user, groupId, csrComment, boxStatus));   
      } 
}); 

我真的不知道如何發佈的所有boxStatus的所有的選擇的記錄。當我點擊保存時,是否需要編寫一個迭代所有記錄的方法?這似乎是錯誤的......感謝您的幫助。

+0

您是否想重現您的簡化版本使用https://fiddle.sencha.com/分機表單,以便其他人更容易查看? –

+0

我想要做的是批量更新單個列中的所有單元格。所以我會一次選擇所有的組狀態並點擊更新,發佈到服務器。我只是不確定如何通過一次通話發佈所有人。 – MadCatm2

+0

'fieldValues.boxStatus'是否包含所有需要發送給服務器的值? –

回答

0

經過一番搗鼓,我找到了工作。訣竅是遍歷每個組ID,爲所有選定的記錄...這樣我就可以同時更新每個記錄的boxStatus:

​​3210
+0

我很高興你知道了!我爲沒有幫助更多而道歉。我很少登錄到Stack Overflow並忘記返回。 –

+0

儘管你可以考慮使用'jsonData'而不是'params',這取決於你想發送多少數據。 http://docs.sencha.com/extjs/6.2.0/classic/Ext.data.Request.html#cfg-jsonData –