2011-02-17 15 views
2

Hy everyone、 私はExtJS 3.2、PHP5.3、Oracle 10g XEを持っています。ExtJs Grid with JsonStoreのデータがロードされていません

JSONはMyExtJs.phpから返さ:


[{ "FIRST_NAME": "エレン"、 "LAST_NAME": "アベル"}、{ "FIRST_NAME": "サンダー"、 "LAST_NAME": {"FIRST_NAME": "David"、 "LAST_NAME": "Austin"}、{"FIRST_NAME": "Hermann"、 "Ande"}、{「FIRST_NAME」:「Mozhe」、「LAST_NAME」:「Atkinson」} {BOOK}}、{"FIRST_NAME": "Amer"、 "LAST_NAME": "Banda"}、{"FIRST_NAME": " {"FIRST_NAME": "ベル"}、{"FIRST_NAME": "David"、 "LAST_NAME": "Bernstein"}]

「Elizabeth」、「LAST_NAME」:「Bates」}、「FIRST_NAME」:「Sarah」、「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' 
            }); 

Iは、ヘッダとグリッドの境界線が、内部にデータを示します。あなたのフィールドの設定で

種類よろしくは、 ダン

+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サーバーからのデータを読み込むために、Storeのconfigに設定された "fields" propが、DataReaderに渡されて自身を構成します。 DataReaderは、読み取る各フィールドにExt.data.Fieldを使用し、hereと表示され、ExtJSのドキュメントは良好です!

関連する問題