Extjs 代理加载grid store

本文介绍如何通过ExtJS的代理设置来动态加载Grid的Store数据。当需要更新Store内容时,只需调用Store的reload方法。文章中会展示HTTP请求返回JSON数据的示例格式,并讲解如何解析这些数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

采用代理方式加载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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值