Extjs5:ComboBox未显示所选值

时间:2015-03-13 10:04:49

标签: javascript extjs combobox

我创建了一个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.componentTypeExt.form.field.ComboBox

2 个答案:

答案 0 :(得分:2)

这个小提琴对我来说很好,我删除了对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"
                }]
            })
        });
    }
});

答案 1 :(得分:0)

valueField:“value”错误,你应该指定valueField:“key”以使ComboBox正常工作