2013-08-28 4 views
2

У меня есть поле со списком, которое имеет несколько статических (жестко закодированных) значений, которые отображаются внутри сетки.Как установить значение по умолчанию для поля со списком

По умолчанию оно должно показывать первое значение в поле со списком. Я пробовал несколько вещей, но это не сработало. Я создаю StaticComboBox первый, а затем

 var StaticComboBox = Ext.extend(Ext.form.ComboBox, { 
    mode: 'local', 
    triggerAction: 'all', 
    editable: false, 
    valueField: 'value', 
    displayField: 'label', 
    data: [], 
    initComponent: function() { 
    this.store = new Ext.data.ArrayStore({ 
     fields: ['value', 'label'], 
     data: this.data 
    }); 
    StaticComboBox.superclass.initComponent.call(this); 
    } 
}); 


    var cm = new Ext.grid.ColumnModel([ 
    { 
     id:'language', 
     header: "Language", 
     dataIndex: 'language', 
     width: 235, 
     menuDisabled: true, 
     editor: new StaticComboBox({ 
      name: 'Reasons', 
      data: [ 
      [0, 'Reason 1'], 
      [1, 'Second Reason'], 
      [2, 'Something else'] 
      ] 
     }), 

     listeners: { 
      load: function() { 
       //set the ComboBox value here 
       var combo = Ext.getCmp('language'); 
       combo.setValue("1"); 
      } 
      } 
    } 
]); 

ответ

0

Это маловероятно, что Вы получаете нагрузки событие вызывает ваш магазин уже заполнены. Попробуйте прослушать рендер или что-то еще.

Вот рабочий пример: http://jsfiddle.net/4baem/3/

Использование Ext.data.Store, а затем ваши данные должны быть массив записей:

new StaticComboBox({ 
     name: 'Reasons', 
     data: [{value: 0, label: 'reason1'}, {value: 1, label: 'reason2'}]  
}); 
Смежные вопросы