我在编辑器网格中出现了一个combocox。输入值时,我必须进行验证,因此我使用了属性 forceSelection:true 。但是打开力选择会引起另一个问题,因为当组合框丢失焦点如下图所示时,组合值为空白。
示例代码:
var employeeType = [{
'typeid': 1,
'typename': 'Contractor'
}, {
'typeid': 1,
'typename': 'Regular'
}];
var employeeTypeStore = Ext.create('Ext.data.Store', {
fields: ['typeid', 'typename'],
data: employeeType
});
Ext.define('Employees', {
extend: 'Ext.data.Model',
fields: [{
name: 'emptype',
type: 'string'
}, {
name: 'name',
type: 'string'
},
]
});
var empStore = Ext.create('Ext.data.Store', {
model: 'Employees',
data: [{
'emptype': 'Regular',
'name': 'John Doe'
},{
'emptype': 'Regular',
'name': 'Ricky'
},{
'emptype': 'Regular',
'name': 'Mason'
}]
});
var grid = Ext.create('Ext.grid.Panel', {
renderTo: Ext.getBody(),
store: empStore,
width: 1000,
height: 500,
title: 'Employees',
columns: [{
text: 'Employee Type',
dataIndex: 'emptype',
editor: {
xtype: 'combobox',
queryMode: 'local',
store: employeeTypeStore,
displayField: 'typename',
valueField: 'typeid',
forceSelection : true
}
}, {
text: 'Employee Name',
dataIndex: 'name'
}],
plugins: {
ptype: 'cellediting',
clicksToEdit: 1
}
});
如果该值为false,那么我需要显示最后一个正确的值。
答案 0 :(得分:0)
它是预期的行为。
设置forceSelection: true
将限制用户选择仅在列表中存在的值。因此,如果您在不选择任何项目的情况下松开了焦点,它将变成空白。
如果与已知值匹配,您可以使用typeAhead: true
填充并自动选择要输入的文本的其余部分。