2

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

从 MyExtJs.php 返回的 JSON:


[{"FIRST_NAME":"Ellen","LAST_NAME":"Abel"},{"FIRST_NAME":"Sundar","LAST_NAME":"Ande"}, {"FIRST_NAME":"Mozhe","LAST_NAME": "Atkinson"},{"FIRST_NAME":"David","LAST_NAME":"Austin"},{"FIRST_NAME":"Hermann","LAST_NAME":"Baer"},{"FIRST_NAME":"Shelli", "LAST_NAME":"白大"},{"FIRST_NAME":"Amit","LAST_NAME":"Banda"},{"FIRST_NAME":"Elizabeth","LAST_NAME":"Bates"},{"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 回答