2011-11-25 110 views
1

我想加载一个json商店,当我点击另一个网格中的特定行时。任何人都可以看到我在这里做错了吗?在ext-all.js中,由于数据未定义(来自调试器),错误返回。ExtJS4 - 从另一个网格加载商店

 Ext.define('Documents', { 
      extend: 'Ext.data.Model', 
      fields: [ 
       { name: 'index', type: 'int' }, 
       { name: 'path', type: 'string' } 
      ] 
     }); 

     var documents = new Ext.data.JsonStore({ 
      model: 'Documents', 
      root: 'groupdocuments', 
      autoLoad: false 
     }); 

     // in the Ext.grid.Panel 

     listeners: { 
      itemclick: function() { 

       var itemgroupid = rec.get('groupid'); 

       Ext.Ajax.request({ 
        url: '/GetDocuments', 
        params: { groupId: itemgroupid }, 
        success: function (result) { 

         var jsondata = Ext.decode(result.responseText); 
         documents.loadData(jsondata); 
        } 
       }); 
      } 
     } 

     // the sample json returned from url 
     // { "groupdocuments": [{ "index": 1, "path": "1.doc" }, { "index": 2, "path": "2.doc" }, { "index": 3, "path": "3.doc" }] } 

回答

0

它看起来像你需要转义路径数据。应该是{path:“C:\\ something \\”}

另外为什么不使用网格分组功能?

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.grid.feature.Grouping

在寻找进一步它看起来像loaddata函数需要一个数组。不是像你一样拥有root数据对象的json对象。改变听者以下几点:

var jsondata = Ext.decode(result.responseText); 
documents.loadData(jsondata.groupdocuments); 

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.Store-method-loadData

或者,你应该能够使用loadRawData与全JSON对象。

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.Store-method-loadRawData

+0

我不认为我是在那之后的功能。我想要做的是将信息从一个网格加载到另一个网格,因此我想手动加载json商店。我刚刚更新了这个例子,路径不是问题。 – fes

+0

奇怪的是,我在15分钟前尝试了这种方法,并且抛出了另一个错误。但是这次它似乎工作正常。干杯。 – fes