2

みなさん、私は ExtJS 3.2 、 PHP5.3 、および Oracle 10g XE を持っています。

MyExtJs.php から返された JSON:


[{"FIRST_NAME":"エレン","LAST_NAME":"アベル"},{"FIRST_NAME":"サンダー","LAST_NAME":"アンデ"}, {"FIRST_NAME":"モジェ","LAST_NAME": "アトキンソン"},{"FIRST_NAME":"デビッド","LAST_NAME":"オースティン"},{"FIRST_NAME":"ヘルマン","LAST_NAME":"ベア"},{"FIRST_NAME":"シェリー", "LAST_NAME":"バイダ"},{"FIRST_NAME":"アミット","LAST_NAME":"バンダ"},{"FIRST_NAME":"エリザベス","LAST_NAME":"ベイツ"},{"FIRST_NAME": "サラ","LAST_NAME":"ベル"},{"FIRST_NAME":"デビッド","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'
                                  });

グリッドのヘッダーと境界線のみを表示しますが、内部にはデータを表示しません。

敬具、ダン

4

1 に答える 1

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 ではありません。内部的に Ext.data.DataReader を使用してサーバーからのデータを読み取ります。Store の構成で設定されたこの「フィールド」プロップは、自身を構成するために DataReader に渡されます。DataReader は、読み取られる各フィールドに Ext.data.Field を使用します。ここを見てください。ExtJS のドキュメントは優れています!

于 2011-02-17T16:45:15.043 に答える