2011-02-17 4 views
2

안녕하십니까, 저는 ExtJS 3.2, PHP5.3 및 Oracle 10g XE를 보유하고 있습니다.JsonStore의 데이터가있는 ExtJs Grid가로드되지 않습니다.

JSON가 MyExtJs.php로부터 반환


[{ "FIRST_NAME": "엘렌", "LAST_NAME": "아벨"}, { "FIRST_NAME": "다르", "LAST_NAME" { "FIRST_NAME": "David", "LAST_NAME": "Austin"}, { "FIRST_NAME": "Hermann", "Ande"}, { "FIRST_NAME" { "FIRST_NAME": "Amit", "LAST_NAME": "Banda"}, { "FIRST_NAME": "Baida"}, { "FIRST_NAME": " "FIRST_NAME": "Sarah", "LAST_NAME": "Bell"}, { "FIRST_NAME": "David", "LAST_NAME": "Bernstein"}]

"엘리자베스", "LAST_NAME"

데이터 저장소 :

var store = new Ext.data.JsonStore({ 
        autoLoad: true, 
        url: 'MyExtJs.php', 
        fields: [ 
          {name: 'firstname'}, 
          {name: 'lastname'} 
          ] 
            }); 

그리드는 :

var grid = new Ext.grid.GridPanel({ 
     store: store, 
     columns: [ 
      { 
       id  : 'fname', 
       header : 'First Name', 
       width : 160, 
       sortable : true, 
       dataIndex: 'firstname' 
      }, 
      { 
       id  : 'lname', 
       header : 'Last Name' , 
       width : 75, 
       sortable : true, 
       dataIndex: 'lastname' 
      } 
       ], 
     stripeRows: true, 
     height: 300, 
     width: 500, 
     title: 'Report', 
     autoExpandColumn: 'lname', 
     stateful: true, 
     stateId: 'grid' 
            }); 

난 단지 헤더와 그리드의 경계하지만, 내부에 어떤 데이터를 보여줍니다.

친절 감사, 댄

config (설정) 귀하의 필드에
+1

글쎄, JSON 필드는 "FIRST_NAME", "LAST_NAME"이고 데이터 저장소에 "firstname"및 "lastname"이라고 말합니다. –

답변

3

이 같은 "매핑"속성을 포함한다 :

var store = new Ext.data.JsonStore({ 
    autoLoad: true, 
    url: 'MyExtJs.php', 
    fields: [ 
     {name: 'firstname', mapping:'FIRST_NAME'}, 
     {name: 'lastname', mapping:'LAST_NAME'} 
    ] 
}); 

그것은 당신의 JSON을 읽어 Ext.data.Store이되지 않습니다, 그것은 내선을 사용합니다 .data.DataReader int intly 서버에서 오는 데이터를 읽으려면 Store의 config에 설정된 "fields"prop가 자신을 구성하기 위해 DataReader에 전달됩니다. DataReader는 읽히는 각 필드에 대해 Ext.data.Field를 사용합니다. here으로 보입니다. ExtJS의 문서는 좋습니다!

관련 문제