如何设置组合框的默认值

时间:2013-08-28 19:49:59

标签: extjs

我有一个组合框,其中几个静态(硬编码)值显示在网格内。

默认情况下,它应该显示组合框中的第一个值。我尝试了一些东西,但它不起作用。 我先创建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");
             }
          } 
    } 
]);

1 个答案:

答案 0 :(得分:0)

由于您的商店已经填满,因此您不太可能获得加载事件。 尝试听渲染或其他东西。

以下是一个工作示例:http://jsfiddle.net/4baem/3/

使用Ext.data.Store,然后您的数据必须是一个记录数组:

new StaticComboBox({
       name: 'Reasons',
       data: [{value: 0, label: 'reason1'},  {value: 1, label: 'reason2'}]    
});