具有来自JsonStore的数据的ExtJs Grid未加载

时间:2011-02-17 15:30:40

标签: php extjs json datastore

Hy大家, 我有ExtJS 3.2,PHP5.3和Oracle 10g XE。

JSON从MyExtJs.php返回:


[{“FIRST_NAME”:“Ellen”,“LAST_NAME”:“Abel”},{“FIRST_NAME”:“Sundar”,“LAST_NAME”:“Ande”},{“FIRST_NAME”:“Mozhe”,“ LAST_NAME “:” 阿特金森 “},{” FIRST_NAME “:” 万人迷 “ ”LAST_NAME“: ”奥斯汀“},{ ”FIRST_NAME“: ”赫尔曼“, ”LAST_NAME“: ”贝尔“},{ ”FIRST_NAME“:” Shelli “ ”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'
                                  });

我只显示网格的标题和边框,但里面没有数据。

亲切的问候, 丹

1 个答案:

答案 0 :(得分:3)

在您的字段中,配置包括"映射"这样的财产:

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

不是Ext.data.Store读取你的JSON,它使用Ext.data.DataReader来读取来自服务器的数据,这个"字段"在Store的配置中设置的prop将传递给其DataReader以进行自我配置。 DataReader对每个正在阅读的字段使用Ext.data.Field,查看here,ExtJS的文档很好!