Extjs 4.1 - 如何将数据从商店加载到另一个商店

Posted

技术标签:

【中文标题】Extjs 4.1 - 如何将数据从商店加载到另一个商店【英文标题】:Extjs 4.1 - How to loadData from a Store to another Store 【发布时间】:2013-08-03 01:44:35 【问题描述】:

我有一个store1autoLoad:true

           store1 = Ext.create('Ext.data.Store', 
        fields: ['id', 'name'],
        autoLoad: true,
        proxy: 
            type: 'ajax',
            url: 'example.php',
            reader: 
                type: 'json',
                root: 'results'    // see json output                         
            
        
    );

我有一个带有 autoload:false 的网格有 store2

           store2 = Ext.create('Ext.data.Store', 
        fields: ['id', 'name'],
        autoLoad: false,
        proxy: 
            type: 'ajax',
            url: 'example.php',
            reader: 
                type: 'json',
                root: 'results'    // see json output                         
            
        
    );

我不想再次加载 store2。我想像从 store1 获取一样

grid.store2.loadData(store1.data) // fail

但是怎么做呢,谢谢

【问题讨论】:

【参考方案1】:

您可以从商店的load 活动中受益,试试这样:

store1.addListener('load', function(records, operation, success) 
   if(success) 
      var obj = new Object();
      obj.success = true;
      obj.results = records;
      grid.store2.loadData(obj);
   
);

【讨论】:

但是如何在没有功能的情况下获取记录(记录,操作,成功) b/c 我的网格稍后会初始化 :( 是的,我只是通过使用 getRange() 得到它,一切正常,谢谢:)【参考方案2】:

您可以在代码之前添加。 sortOnLoad=false;

grid.store2.sortOnLoad=false
grid.store2.loadData(store1.data) // fail

【讨论】:

以上是关于Extjs 4.1 - 如何将数据从商店加载到另一个商店的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ext js 4.1 中重新加载商店?

加载商店后如何在网格中设置值? EXTJS3

Extjs 4.1 - 如何将侦听器从对象 A 复制到对象 B

如何在 ExtJS 4.1 中销毁商店?

每当 Store 在 Extjs 4.1 中再次加载时读取每条记录

从 ExtJs 4.1 存储中删除记录时会触发哪些事件