Extjs 代理加载grid store

来源:互联网 发布:知乎盈利了吗 编辑:程序博客网 时间:2024/06/05 22:47

采用代理方式加载grid数据,如果需要刷新store内容,只需要将store reload就行了

Ext.define('TestViewModel',{    extend: 'Ext.app.ViewModel',    alias: 'viewmodel.TestViewModel',    requires:[        'TestGridModel'    ],    //stores属性里可指定多个store    stores:{        testGridStore : {            model : 'TestGridModel',            autoLoad : true,            pageSize : 10        }    }});
 Ext.define('TestGridModel', {    extend : 'Ext.data.Model',    fields : [{        name : 'name',        type : 'string'             },{        name : 'age',        type : 'int'                }],    idProperty : 'unknown',    schema : {        id : 'testGridSchema',        namespace : '', //可以直接使用名字空间里面的这个名字        proxy : {            type : 'ajax',            method : 'post',            actionMethods : { //保证提交的中文参数不是乱码                read : 'POST'            },            url : 'testAction!testMethod.action', //填写action            reader : {                type : 'json',                rootProperty : 'list',                totalProperty : 'size'            }        }      } });

假设http请求返回的json字符串是如下格式:

{  "desc" : "xxxxxxx",  "itemTotal" : "20",  "items" : [    {        "desc" : "xxxx",       "Users" : {            "name" : 0,            "age" : 20       }    }, {       "desc" : "xxxxx",       "Users" : {            "name" : 0,            "age" : 20      }    }  ]}

对字符串进行解析

private List<User> decodeJsonToObject(String json){        List<User> userList = new ArrayList<User>();        JSONObject total = JSONObject.fromObject(json);        JSONArray result = total.getJSONArray("items");        for(int i = 0; i < result.size(); i++){            User user= new User();            JSONObject userObj = result.getJSONObject(i);            JSONObject users= userObj.getJSONObject("Users");            user.setAge(users.getInt("age"));            user.setName(users.getString("name"));                  userList .add(user);                    }        return userList ;    }
public String testMethod(){    /**    *HTTP REUQEST    */    list=decodeJsonToObject(json);    count=list.size();    return SUCCESS;}
0 0