2017-02-28 10 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のすべてを掲示する方法が本当にわかりません。 Saveを押すとすべてのレコードを繰り返し処理するメソッドを記述する必要がありますか?それは間違っているようだ...助けをありがとう。

+0

あなたの簡易版を再現する気だろう他の人がレビューするのが簡単になるようにhttps://fiddle.sencha.com/を使用してExtフォームを作成しますか? –

+0

私は、バルクで単一の列のすべてのセルを更新することを試みています。だから私は一度にすべてのグループステータスを選択し、サーバーに投稿するために更新をヒットします。私は単なる呼び出しでそれらのすべてを投稿する方法がわかりません。 – MadCatm2

+0

'fieldValues.boxStatus'にはサーバーに送る必要があるすべての値が含まれていますか? –

答えて

0

少し過ぎた後、私はそれを働かせました。トリックは...選択されたレコードのすべてのために、各グループIDを反復するために、私は一度それらのレコードごとにboxStatusを更新することができました。この方法だった:

​​3210
+0

あなたがそれを理解してうれしいです!私はもっ​​と助けてくれないことをお詫びします。私はめったにスタックオーバーフローにサインインして返却するのを忘れてしまった。 –

+0

送信するデータの量によっては、 'params'の代わりに' jsonData'を使うことも考えられます。 http://docs.sencha.com/extjs/6.2.0/classic/Ext.data.Request.html#cfg-jsonData –

関連する問題