Extjs4从服务器加载网格数据

时间:2013-09-26 06:08:54

标签: extjs extjs4 extjs-mvc extjs-grid

如何从服务器加载网格数据我可以将数据从存储加载到网格但不能将数据从服务器加载到存储然后加载到网格服务器API详细信息:

http://192.1681.102:8080/Petcrumbs/member/getMemberList

请求参数:

{ “PAGENUMBER”:5}

响应成功:

{    “listOfMembers”:    [        {            “地址”:            {                “州”:“MH”,                “国家”:“印度”,                “城市”:“浦那”,                “addressId”:52,                “streetName”:“Karve Road”,                “streetNameTwo”:“Nal Stop”,                “zipCode”:“412042”            },            “名称”:“测试Mmber4”,            “密码”:“287974”,            “authKey”:“99710ff8d98346f51a7b3df83c16257”,            “性别”:“男性”,            “deviceToken”:“ldjhakjhdkjahn42,n4lk2jedlkandmandlkand”,            “社区”:“Kothrud”,            “emailId”:“r.pekam@mb.com”,            “电话”:“9096305571”,            “image”:null,            “memberId”:41,            “活跃”:1,            “删除”:false,            “myPackage”:“黄金”,            “joinedDate”:“09-17-2013”        }  ]    “message”:“会员检索成功。”,    “成功”:是的 }

响应失败:

{   “listOfMembers”:null,   “message”:“无法检索成员。”,   “成功”:错误

}


在EXTJS商店

 Ext.define('PetCrumbs.store.Members', {
extend : 'Ext.data.ArrayStore',
model : 'PetCrumbs.model.Member',

autoLoad : true,
//storeId : 'Data',
proxy : {
    type : 'ajax',
    url : '/Petcrumbs/member/getMemberList',
    method : 'POST',
    headers : {
        'Content-Type' : 'application/json',
        'Accept' : 'application/json'
    },
    jsonData : {
        pageNumber : "5"
    },
    reader : {
        type : 'json',
        root: 'listOfMembers',
        successProperty: 'success'
    }
 }
});

当我有这样的存储(硬编码数据)时,网格显示数据:

Ext.define('PetCrumbs.store.Members', {
extend: 'Ext.data.ArrayStore',
model: 'PetCrumbs.model.Member',

data: [
['1','1002','Asin','kothroud@gmail.com','kothrud,Pune','MH',
 'Pune','411051','Male','Gold','Kothrud','1'],['2','1012','Karina','Pashan@gmail.com',
'Pashan,Pune','MH','Pune','411051','Female','Silver','Pashan','0']
]   
});

请告诉我上面的代码有什么问题?

3 个答案:

答案 0 :(得分:1)

您可以修改服务器发送数据的方式吗?最简单的方法是使用Ext.data.StoreExt.data.reader.Json。要使用它,您的JSON应如下所示:

{ 
   "listOfMembers": [
   {"attr1":"value1",:"attr2":"value2",...},... 
   ], 
   "message": "Unable to retrieve members.", "success": false
}

然后就会直截了当。

如果要继续输出,则必须修改阅读器或定义更复杂的对象关系。

答案 1 :(得分:0)

我的猜测是你使用ArrayStore,它适用于本地硬编码数据(因为它是数组),但是当你想远程加载数据时 - 你应该扩展Ext.data.Store吗? / p>

答案 2 :(得分:0)

您正在使用ArrayStore,但服务器返回JSON。所以你应该使用JsonStore。或者只是带有配置阅读器的基本商店