Extjs Don不加载Grid。 PHP

时间:2014-01-20 18:39:23

标签: php json extjs

有人会对此代码有所帮助:网格不加载信息。 下面是我正在使用的代码,但网格没有任何信息。 EXTJS

             Ext.onReady(function(){
        var store = new Ext.data.JsonStore({
        // store configs
        storeId: 'myStore',
        proxy: {
            type: 'ajax',
            url: 'data.php',
            reader: {
            type: 'json',
            root: 'country',
            idProperty: 'total'
            }
        },

        //alternatively, a Ext.data.Model name can be given (see Ext.data.Store for an example)
        fields: ['name', 'area']
    });

    Ext.create('Ext.grid.Panel', {
    title: 'Retorno',
    //store: Ext.data.StoreManager.lookup('simpsonsStore'),
    store:store,
    columns: [
        { text: 'Name',  dataIndex: 'name' },
        { text: 'Area', dataIndex: 'area', flex: 1 }

    ],
    height: 200,
    width: 400,
    renderTo: Ext.getBody()
});

});

data.php这里是带有json代码的代码。

<?php 
print '{
    "total": 10,
    "country": [
        {
            "name": "CULTIV",
            "area": "6.96120082466223e-007"
        },
        {
            "name": "asdASdasd",
            "area": "123123123"
        }
    ]
}';
?>

1 个答案:

答案 0 :(得分:3)

我认为您需要将商店的autoLoad配置设置为true。如果您未设置此属性,则需要调用商店的load()方法。

选项1

var store = new Ext.data.JsonStore({
            // store configs
            storeId: 'myStore',
            autoLoad:true,
            proxy: {
                type: 'ajax',
                url: 'data.php',
                reader: {
                    type: 'json',
                    root: 'country'
                    //idProperty: 'total'
                }
            },

            //alternatively, a Ext.data.Model name can be given (see Ext.data.Store for an example)
            fields: ['name', 'area']
        });

选项2

var store = new Ext.data.JsonStore({
            // store configs
            storeId: 'myStore',
            proxy: {
                type: 'ajax',
                url: 'data.php',
                reader: {
                    type: 'json',
                    root: 'country'
                    //idProperty: 'total'
                }
            },

            //alternatively, a Ext.data.Model name can be given (see Ext.data.Store for an example)
            fields: ['name', 'area']
        });
        store.load();

I created a working fiddle for a demonstration.