我有一个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”等等
我该怎么办?谢谢!
答案 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) );
};
}