0

我有一个带有以下列的 gridPanel:

header:        'Current plan',
                        tooltip:       'Current plan',
                        dataIndex:     'plan_id',
                        editor:      new Ext.form.ComboBox({
                           allowBlank:          true,
                           typeAhead:           true,
                           triggerAction:       'all',
                           lazyRender:          true,
                           mode:                'local',
                           valueNotFoundText:   'no data',
                           valueField:          'id',
                           displayField:        'text',
                           store:               new Ext.data.ArrayStore({
                              fields:  ['id', 'text'],
                              data: [
                                 ['1', 'Plan one'],
                                 ['2', 'Plan two'],
                                 ['3',  'Plan three'],
                                 ['4',  'Plan four']
                              ]
                           })
                        }),

因此,当我在列中编辑此字段时 - 我将“计划一”、“计划二”、“计划三”、“计划四”作为要选择的值,当我选择它们时 - dataIndex 设置为 1-2-3- 4并像这样显示在列字段中。我想要的是 dataIndex 字段保持 1-2-3-4 值(因为它是我在后端使用的值),但我希望它们显示在我的列字段中,如“计划一”、“计划二”等.

我该怎么做?谢谢!

4

2 回答 2

1

解决了

renderer: function(dataIndex){
                            switch(dataIndex)
                            {
                               case '1':
                                 return 'Plan one';
                                 break;
                               case '2':
                                 return 'Plan two';
                                 break;
                               case '3':
                                 return 'Plan three';
                                 break;
                               case '4':
                                 return 'Plan four';
                                 break;
                            }
                         },

在列模型中。

于 2013-01-30T15:16:21.180 回答
1

更好地使用此代码:

var comboBoxRenderer = function(combo) {
  return function(value) {
    var idx = combo.store.find(combo.valueField, value);
    var rec = combo.store.getAt(idx);
    return (rec === null ? '' : rec.get(combo.displayField) );
  };
}
于 2013-01-31T12:34:51.797 回答