2011-11-25 79 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