extjs4学习笔记(二)----- 监听事件beforeload使用

本文介绍了EXTJS4中Store的beforeload事件,该事件在数据请求发出前触发,若返回false则取消请求。通过监听beforeload,可实现Grid的参数查询和动态分页功能,允许在加载数据前根据条件注入参数,以达到灵活过滤和分页显示的效果。
摘要由CSDN通过智能技术生成

EXTJS4 store 监听事件beforeload使用(grid带参数,查询,分页)

最近看store发现一个方法–beforload,官网定义

在一个新数据对象请求发出前触发此事件. 如果beforeload的处理函数返回’false’, 数据请求将被取消.

Store注册beforeload监听事件重新加载grid的方法,用于条件查询 如果我们使用条件查询过滤表格中的数据,而请求的是同一个URL,只是根据传入的参数不同而得到不同结果集的情况下,我们可以使用Store的addListener方法注册一个beforeload事件,也可以使用listeners属性注册一个beforeload事件。
使用listeners请求注入参数

listeners: {  
    'beforeload': function (store, op, options) {  
    var params = { 
    startdate:Ext.getCmp('startdate').getValue(),  
    enddate:Ext.getCmp('enddate').getValue() //传递参数 
 };  
  Ext.apply(store.proxy.extraParams, params);   
         }  
  }

使用addListener请求注入参数

grid.getStore().addListener({
beforeload:function(store,records,options){
 store.baseParams = {
  query:'true',
  name:name //name为之前定义的变量
 };
}
});

beforeload还有一个重要的作用是进行分页。beforeload可以实现在创建store后每次自动加载前都需要获取查询条件的功能

var abStore = Ext.create('Ext.data.Store', {  
                autoLoad : {  
                    start : 0,  
                    limit : itemsPerPage  
                },  
                pageSize : itemsPerPage,  
                model : 'test',  
                autoLoad : true,  
                proxy : {  
                    type : 'ajax',  
                    url : path + '***',  
                    reader : {  
                        type : 'json',  
                        root : 'rows',  
                        totalProperty : 'results',  
                        idProperty : '**'  
                    }  
                }  
            });  

    //解决查询条件分页问题          
    abStore.on('beforeload', function(store, options) {  

                var apply = Ext.getCmp('applytime').getValue();  
                var end2 = Ext.getCmp('endtime').getValue();  
                var start = Ext.util.Format.date(apply, 'Y-m-d');  
                var stop = Ext.util.Format.date(end2, 'Y-m-d');  

        var new_params = {  
                applytime : start,  
                endtime : stop  
                        };  
        Ext.apply(store.proxy.extraParams, new_params);  
        });  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值