2012-07-19 28 views
15

tôi xác định một combobox như thế nàyLàm thế nào để thay đổi lưu trữ dữ liệu combobox trong ExtJS 4.1

 
{ 
    xtype: 'combobox', 
    emptyText: 'Functions' 
    store: [ 'none' ] 
} 

sau đó, trên một số sự kiện các cửa hàng nên tải dữ liệu mới, vì vậy tôi có được các cửa hàng từ combobox và thử điều này:

 
oFunctionStore.loadData(['dothis', 'dothat', 'dosomething' ]); 

nhưng sau đó, combobox có một menu thả xuống mà không có bất kỳ nội dung hiển thị nào, chỉ các dòng trống nhỏ.

Trả lời

17
// Change this... 
oFunctionStore.loadData(['dothis', 'dothat', 'dosomething' ]); 

// to this... 
oFunctionStore.loadData([ [ 'dothis' ], [ 'dothat' ], [ 'dosomething' ] ]); 
  • Các combobox ngầm tạo ra một Ext.data.ArrayStore, mà sẽ chuyển đổi mảng vào các mô hình.

  • Tham số data truyền cho loadData dự kiến ​​sẽ được hoặc là một mảng của các mô hình, hoặc một mảng các đối tượng hơn có thể được chuyển đổi sang mô hình (trong trường hợp này, một mảng của mảng).

  • Khi tải ban đầu của cửa hàng, mảng ban đầu đã được chuyển thành [ [ 'none' ] ] phía sau hậu trường.

Xem ví dụ here

1

carStore - bất kỳ cửa hàng cho kết hợp chính.

carModelStore - cửa hàng, cần được phụ thuộc vào lựa chọn trong carStore - dựa combo box

var carModelStore = new Ext.data.Store({ 
    reader: new Ext.data.JsonReader({ 
     fields: ['id', 'car-model'], 
     root: 'rows' 
    }), 
    storeId: 'car-model-store', 
    proxy: new Ext.data.HttpProxy({ 
     url: 'carmodeldataprovider.json?car-name=lamborghini' 
    }), 
    autoLoad: true 
}); 


{ xtype: 'combo', name: 'car-name', fieldLabel: 'Car', mode: 'local', store: carStore, triggerAction: 'all', 
    listeners: { 
     select: function(combo, records, eOpts){ 
      var carName = records.get('car-name'); // the element selected in combo 
      var carModelStore = Ext.StoreMgr.lookup("car-model-store"); 

      carModelStore.proxy.setUrl('carmodeldataprovider.json?car-name=' + carName, false); 
      carModelStore.reload(); 
     } 
    } 

} 
Các vấn đề liên quan