3

グリッド内に表示される静的な (ハードコードされた) 値がほとんどないコンボ ボックスがあります。

デフォルトでは、コンボ ボックスの最初の値が表示されます。私はいくつかのことを試しましたが、うまくいきません。最初に 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");
             }
          } 
    } 
]);
4

1 に答える 1

0

ストアがすでにいっぱいになっているため、 loadイベントが発生する可能性はほとんどありません。render などを聞いてみてください。

これが実際の例です:http://jsfiddle.net/4baem/3/

Ext.data.Store を使用すると、データはレコードの配列である必要があります。

new StaticComboBox({
       name: 'Reasons',
       data: [{value: 0, label: 'reason1'},  {value: 1, label: 'reason2'}]    
});
于 2013-08-29T08:58:12.453 に答える