2011-11-25 2 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 \\"}

또한 그리드 그룹 기능을 사용하지 않는 이유는 무엇입니까? loaddata 함수 배열을 기대처럼 보이는에서

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

더 같습니다. 당신이 그것을주는 것처럼 rootdata 객체를 가진 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

은 다른 방법은 전체 JSON 객체로 loadRawData를 사용할 수 있어야합니다.

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

+0

나는 그 기능을 수행하고 있다고 생각하지 않습니다. 내가 뭘 하려는지 하나의 그리드에서 다른 그리드로 정보를로드하므로 json 저장소를 수동으로로드하고 싶었습니다. 방금 예제를 업데이트 했으므로 경로는 문제가되지 않습니다. – fes

+0

이상한 나는 약 15 분 전에 그 방법을 시도했지만 다른 오류가 발생했습니다. 그러나 이번에는 잘 작동하는 것 같습니다. 건배. – fes