gridPanel列中的替代dataIndex值

时间:2013-01-30 14:46:15

标签: extjs

我有一个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值(因为它是我在后端使用的那些),但我希望它们出现在我的列字段中,如“Plan one”,“Plan two”等等

我该怎么办?谢谢!

2 个答案:

答案 0 :(得分: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;
                            }
                         },
列模型中的

答案 1 :(得分: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) );
  };
}