强制选择为true时带组合框的网格中的空白值

时间:2019-07-10 16:05:12

标签: extjs combobox grid extjs5

我在编辑器网格中出现了一个combocox。输入值时,我必须进行验证,因此我使用了属性 forceSelection:true 。但是打开力选择会引起另一个问题,因为当组合框丢失焦点如下图所示时,组合值为空白。

Blank value

示例代码:

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,那么我需要显示最后一个正确的值。

1 个答案:

答案 0 :(得分:0)

它是预期的行为。

设置forceSelection: true将限制用户选择仅在列表中存在的值。因此,如果您在不选择任何项目的情况下松开了焦点,它将变成空白。

如果与已知值匹配,您可以使用typeAhead: true填充并自动选择要输入的文本的其余部分。