extjs - ExtJS 4动态更改网格存储




2 Answers

我认为更好的解决方案是:

     grid1.on('itemclick', function(view, record) {
         grid2.reconfigure(record.products());
     );

在ExtJS 4中更改网格存储是否可行?

例如,我有两个模型:

User = Ext.define('User',{
  extend: 'Ext.data.Model',
  [...],
  hasMany: 'Product'
});

Product = Ext.define('Product',{
  extend: 'Ext.data.Model',
  [...]
});

和两个网格。 第一个网格与Store链接,后者使用User模型并从后端加载嵌套的json数据,如

{
  users: [{
     id: 1,
     products: [
       {id: 1},
       {id: 2}
     ]
  }, {
     id: 2,
     products: [
       {id: 3},
       {id: 4},
       {id: 5}
     ]
  }]
}

我想要的是当你点击第一个网格中的行时,第二个网格必须显示用户的产品,而不连接到服务器。 我所知道的就是user.products(); 返回一个Ext.data.Store对象。 所以我们的想法是将第二个网格的商店改为user.products(); ,但是没有这样的方法grid.setStore() :-)

提前致谢




如果要在创建网格后将存储附加到网格,可以使用bindStore()方法。

var store = user.products();
grid.getView().bindStore(store);

或者,您也可以使用load(),loadData(),loadRecords()方法,并将数据复制到商店中。




Related