简体   繁体   English

Extjs4从服务器将数据加载到网格中

[英]Extjs4 Load data in grid from server

How to load data in grid from server I am able to load data from Store to grid but not able to load data from server to the store and then into grid Server API Details : 如何从服务器在网格中加载数据我能够将数据从商店加载到网格,但不能将数据从服务器加载到商店,然后再加载到网格Server API Details:

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

Request Parameters : 请求参数:

{"pageNumber":5} {“ pageNumber”:5}

Response Success : 响应成功:

{ "listOfMembers": [ { "address": { "state": "MH", "country": "India", "city": "Pune", "addressId": 52, "streetName": "Karve Road", "streetNameTwo": "Nal Stop", "zipCode": "412042" }, "name": "Test Mmber4", "password": "287974", "authKey": "99710ff8d98346f51a7b3df83c16257", "gender": "Male", "deviceToken": "ldjhakjhdkjahn42,n4lk2jedlkandmandlkand", "community": "Kothrud", "emailId": "r.pekam@mb.com", "phone": "9096305571", "image": null, "memberId": 41, "active": 1, "deleted": false, "myPackage": "Gold", "joinedDate": "09-17-2013" } ], "message": "Member retrieved successfully.", "success": true } {“ listOfMembers”:[{“ address”:{“ state”:“ MH”,“ country”:“印度”,“ city”:“浦那”,“ addressId”:52,“ streetName”:“ Karve Road” ,“ streetNameTwo”:“ Nal Stop”,“ zipCode”:“ 412042”},“ name”:“ Test Mmber4”,“ password”:“ 287974”,“ authKey”:“ 99710ff8d98346f51a7b3df83c16257”,“ gender”:“男性“,” deviceToken“:” ldjhakjhdkjahn42,n4lk2jedlkandmandlkand“,” community“:” Kothrud“,” emailId“:” r.pekam@mb.com“,” phone“:” 9096305571“,” image“:null,” memberId “:41,”活动“:1,”已删除“:false,” myPackage“:”金牌“,” joinedDate“:” 09-17-2013“}],”消息“:”成员已成功检索。“,”成功”:true}

Response Failure : 响应失败:

{ "listOfMembers": null, "message": "Unable to retrieve members.", "success": false {“ listOfMembers”:null,“ message”:“无法检索成员。”,“ success”:false

} }


In EXTJS Store 在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'
    }
 }
});

When I have Store like this ( Hard Coded Data ) grid displays data : 当我有这样的存储(硬编码数据)时,网格显示数据:

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']
]   
});

Please tell me what is wrong with the above code ? 请告诉我上述代码有什么问题?

Can you modify the way your server sends the data? 您可以修改服务器发送数据的方式吗? the easiest would be to use a plain Ext.data.Store with Ext.data.reader.Json . 最简单的方法是将普通的Ext.data.StoreExt.data.reader.Json一起使用。 To use this your JSON should look like: 要使用此格式,您的JSON应该类似于:

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

Then it will be straight forward. 然后它将很简单。

If you want to continue with your output you have to either modify the reader or define more complex object relations. 如果要继续输出,则必须修改阅读器或定义更复杂的对象关系。

我的猜测是您使用ArrayStore ,它与本地硬编码数据(因为它是数组)很好地配合使用,但是当您想远程加载数据时,应该扩展Ext.data.Store呢?

You are using ArrayStore, but server returns JSON. 您正在使用ArrayStore,但是服务器返回JSON。 So you should use JsonStore. 因此,您应该使用JsonStore。 Or just basic store with configured reader 或者只是带有已配置阅读器的基本商店

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM