ExtJS改变表单组件POST数据格式

时间:2011-01-09 04:05:30

标签: javascript post extjs

我希望能够更改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 个答案:

答案 0 :(得分:2)

这不是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行为。

答案 1 :(得分:0)

将组件配置为具有空分隔符,即delimiter:null(请参阅api文档)