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']
                              ]
                           })
                        }),

したがって、列のこのフィールドを編集すると、選択する値として「プラン 1」、「プラン 2」、「プラン 3」、「プラン 4」が取得され、それらを選択すると、dataIndex が 1-2-3- に設定されます。 4 のように列フィールドに表示されます。私が望むのは、dataIndexフィールドが1-2-3-4の値のままであることです(バックエンドで使用するものであるため)が、「プラン1」、「プラン2」などのように列フィールドに表示したい.

どうすればいいですか?ありがとう!

4

2 に答える 2

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 に答える
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 に答える