2015-03-13 64 views
1

我創建了comboBox,當我選擇一個值時,將不會顯示任何值。Extjs5:組合框未顯示選定的值

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 
    }) 

EDIT

這裏正是返回組合的方法:

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在侏儒IME是Ext.form.field.ComboBox

+0

你是如何選擇的價值? – includeMe 2015-03-13 10:11:32

+0

我手動選擇了該值 – 2015-03-13 10:27:01

+0

如何手動選擇該值? – phts 2015-03-13 11:46:56

回答

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" 
       }] 
      }) 
     }); 
    } 
}); 
+0

這對我來說並不是相同的情況:( – 2015-03-13 13:26:55

+0

你可以用你的代碼創建一個小提琴,這樣我們可以調試它,你是否獲得控制檯錯誤? – Scriptable 2015-03-13 13:27:50

+0

我編輯了我的問題 – 2015-03-13 13:52:14

0

valueField:「值」是不對的,你應該指定valueField:以「重點」爲組合框正常工作

+0

感謝您的迴應,但我不認爲這是問題的原因。我試了一下,但問題仍然存在 – 2015-03-13 12:54:14

+0

它幾乎檢查與您的代碼相同的一段代碼http://docs-origin.sencha.com/extjs/5.0.1/#!/api/Ext.form.field.ComboBox -cfg-valueField。 ComboBox應該使用數據存儲中的ID存儲值而不是項目的標題 – snautz 2015-03-13 12:56:39