Extjs5:组合框不显示所选值

Extjs5 : ComboBox not showing the selected value

本文关键字:显示 组合 Extjs5      更新时间:2023-09-26

我创建了一个comboBox,当我选择一个值时,不会显示任何值。

 Ext.create("Ext.form.field.ComboBox", {
        name: el.name,
        fieldLabel: el.labelId,
        hidden: !(el.visible),
        displayField:"value",
        valueField:"value",
        flex: 1,
        store:Ext.create("Ext.data.Store",{
               fields: ['key', 'value'],
               data: [
                        { key: "10",value: "etap 0"},
                        { key: "200",value: "etape 1"},
                        { key: "300", value: "etape 3"}
               ]
        }),
        regex: el.parameterType.regex,
        regexText: el.regExErrMsg,
        allowBlank: !el.mandatory,
        blankText: el.requiredErrMsg
    })

编辑

这正是返回组合的方法:

 drawField: function (el) {
    var me = this;
    var uiField = Ext.create(me.componentType, {
        name: el.name,
        fieldLabel: el.labelId,
        hidden: !(el.visible),
        flex: 1,
        regex: el.parameterType.regex,
        regexText: el.regExErrMsg,
        allowBlank: !el.mandatory,
        blankText: el.requiredErrMsg
    });
    if (el.parameterType.isCombo) {
        uiField.displayField = 'value';
        uiField.valueField = 'key';
        uiField.editable = false;
        uiField.store = Ext.create('Ext.data.Store', {
            fields: ['key', 'value'],
            data: el.parameterType.values
        });
    }
    return uiField;
}

el参数是一个这样的 JavaScript 对象:

{
    name: "",
    labelId: "Champ :",
    parameterType: {
        regEx: "^.*$",
        errID: "115",
        isCombo: true,
        values:[
            {key: "10", value: "etap 0"},
            {key: "200",value: "etape 1"},
            {key: "300",value: "etape 3"},
        ],
        selectedValue: "etap 0"
    },
    mandatory: false,
    visible: true,
    defaultValue: "",
    elementType: "LIST_BOX",
    regExErrMsg: "Valeur invalide.",
    requiredErrMsg: ""
}

运行时me.componentType Ext.form.field.ComboBox

这个小提琴对我来说很好用,我删除了对 el 的引用,因为它对我来说显示为未定义,并且还 Ext.data.store 更改为 Ext.data.Store

https://fiddle.sencha.com/#fiddle/jj6

Ext.application({
    name: 'Fiddle',
    launch: function() {
        Ext.create("Ext.form.field.ComboBox", {
            renderTo: Ext.getBody(),
            displayField: "value",
            valueField: "value",
            flex: 1,
            store: Ext.create("Ext.data.Store", {
                fields: ['key', 'value'],
                data: [{
                    key: "10",
                    value: "etap 0"
                }, {
                    key: "200",
                    value: "etape 1"
                }, {
                    key: "300",
                    value: "etape 3"
                }]
            })
        });
    }
});

valueField:"value"是错误的,您应该指定valueField:"key"以使ComboBox正常工作