ExtJS изменяет формат данных компонента POST - PullRequest
2 голосов
/ 09 января 2011

Я хочу иметь возможность изменить способ, которым компонент ExtJS форматирует данные POST.

Чтобы быть более конкретным, я использую расширение пользователя MultiSelect. Данные поста форматируются одним параметром с разделенными запятыми значениями.

т.е. multiSelect = 1,2,3

Способ, которым мне нужно это обработать, состоит в том, чтобы иметь несколько идентичных атрибутов

т.е. multiSelect = 1 multiSelect = 2 multiSelect = 3

Компонент MutliSelect является следующим

var multiselect = new Ext.ux.Multiselect({
    name              :  'multiselect',
    fieldLabel        :  'Multiselect',
    dataFields        :  ['code', 'desc'], 
    data              :  [['1', 'One'], ['2', 'Two'], ['3', 'Three'], ['4','Four'], ['5', 'Five']],
    valueField        :  'code',
    displayField      :  'desc',
    width             :  150,
    height            :  150,
    allowBlank        :  true
});

Ответы [ 2 ]

2 голосов
/ 09 января 2011

Не 100%, что это будет работать, но я подозреваю, что делать что-то вроде этого следует:

Ext.override(Ext.ux.Multiselect, {
  getValue: function() {
    var returnArray = [],
      selectionsArray = this.view.getSelectedIndexes(),
      i;
    for (i = 0; i < selectionsArray.length; i++) {
     returnArray.push(this.store.getAt(selectionsArray[i]).get(((valueField != null)? valueField : this.valueField)));
    }
    return returnArray;
  }
});

Отправка массива должна заставить его использовать Ext.urlEncode нормальное поведение.

0 голосов
/ 26 апреля 2012

Сконфигурируйте компонент так, чтобы он имел нулевой разделитель, т.е. delimiter: null (см. Документацию API)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...