如何绑定json的extjs网格

时间:2011-09-16 20:39:09

标签: extjs

我在mysql中有一个简单的数据,并希望在ExtJS网格中填充该数据

  

我的代码

Ext.onReady(function() {

    var proxy = new Ext.data.HttpProxy({
        url: 'connectextjs.php'
    });

    var reader = new Ext.data.JsonReader([{
        name: 'Employee_ID',
        mapping: 'Employee_ID'
    }, {
        name: 'Department_ID'
    }, {
        name: 'Name'
    }, {
        name: 'Email'
    }])

    var store = new Ext.data.Store({
        proxy: proxy,
        reader: reader
    });

    store.load();


    // create the grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [{
            header: "Employee_ID",
            width: 90,
            dataIndex: 'Employee_ID',
            sortable: true
        }, {
            header: "Department_ID",
            width: 90,
            dataIndex: 'Department_ID',
            sortable: true
        }, {
            header: "Name",
            width: 90,
            dataIndex: 'Name',
            sortable: true
        }, {
            header: "Email",
            width: 200,
            dataIndex: 'Email',
            sortable: true
        }],
        renderTo: 'example-grid',
        width: 540,
        height: 200
    });

});

我的问题是我无法在网格上加载数据。请帮助我,我是ExtJS的新手。

2 个答案:

答案 0 :(得分:0)

connectextjs.php应该返回带有Employee_ID,Deaprtment_ID,Name和Email init的json格式化数据。严格遵守“南明公约”。

答案 1 :(得分:0)

您可以使用此方法设置网格数据。

  1. 首先,为您的网格分配一个ID,如下所示:

    itemId : 'myGrid';
    
  2. 从JSON调用中加载JSON,如下所示:

    Ext.Ajax.request({
    url : 'connectextjs.php',
    
    params : {
    
    yourParam : 'yourParameters'
    
    },
    
    // --> success simply means your action has no errors
    
    success : function (conn, response, options, eOpts){
    
      var jsonResults = Ext.JSON.decode(conn.responseText);
    
    
      // --> Now that you have your JsonResults Its time to set it to your grid
      me.getView().down('#myGrid').setStore(jsonResults);
    
    }
    
    });