在store中加load事件


 
  

监听store的load:

此文为自己备忘用的,,

为store添加事件

store.addListener('load', function(st, rds, opts) {         // st 是当前的store, rds是读到的Record[], opts是store的配置        //alert(rds.getTotalCount());         //nextstore.removeAll(); //先清除另一个store的内容        //nextstore.add(rds); // 给另一个store添加这些records         //for( var c=0; c

       department.setValue('GGFYZX');//加载完后就可以设置初始值});

 

load( Store this, Ext.data.Record records, Object options )

当一笔新的Record加载完毕后触发。Fires after a new set of Records has been loaded

监听器会传入以下的参数:

this Store

records Ext.data.Record

加载好的Record(Ext.data.Record[])。The Records that were loaded

options Object

所指定的laoding操作。The loading options that were specified   

 

对于这三个参数:sto,records和options,用到的最多的sto,后面两个很少用到。在今天开发的时候,遇到了一些问题,正是这几个参数帮了我的忙。对于这三个参数,我找了一下资料,贴出来:

 写道

API中load事件回调的签名 function( Store this, Ext.data.Record[] records, Object options )

load事件在加载数据后出发, 比如autoLoad: true, 调用load方法, laodData方法, 调用add方法是不会触发的

this : Store, 触发事件的store本身的引用, 在定义事件时没有定义scope的话, this参数与函数中的this指针等价. 在这边使用this作为参数名称比较容易混淆, 函数参数与函数内部的this指针是完全无关的. 应避免使用this作为参数名称. 一般定义回调时这样 function(_store, _records, _ops), 添加_标示内部变量, JavaScript变量作用域非常容易引起混乱, 命名规范非常重要

 

records : Ext.data.Record[]

The Records that were loaded

大部分情况下等价于store的所有数据, 有一种特殊情况, 调用loadData方法指定第2个参数append为true时, 标示保留原有数据, 那records仅仅是本次load添加的数据

 

options : Object

The loading options that were specified (see load for details)

调用load方法时提供的参数对象的引用. 即load事件若是由调用load方法触发, 则options参数即是调用load方法的参数, 比如通常分页都会有参数: store.load({params: {start: 0, limit: 50}}); 则options={params: {start: 0, limit: 50}}

 其中对我有用的是options这个参数,用用处在如下代码中:

Java代码:

store_loadByIns(isaccStore, {ip: ips[j], dbid: dbids[j]}, "load", function (sto, a, b) {  

               // alert(a.length);  

               if (sto.getCount() >= 0) {  

                   unAccessable.push(b.params.dbid);  

               }  

           })  

      this.store = new Ext.data.Store({
            proxy : new Portal.Util.CMBDataProxy({
                operation : {
                    prccod : "DBDWSTBQ"
                },
                requests : {
                    "DBDWSTBQX1" : function(params) {
                        return [ {
                            'qry_key' : params.name,
                            'fun_id' : params.funId
                        } ];
                    }
                },
                responses : {
                    datasNode : "DBDWSTBQZ1"
                }
            }),
            reader : new Ext.data.JsonReader({
                idProperty : 'id',
                root : 'root',
                totalProperty : 'total',
                fields : [ {
                    name : 'tbl_id'
                }, {
                    name : 'tbl_eng_nm'
                }, {
                    name : 'tbl_chn_nm'
                }, {
                    name : 'blg_datarea_id'
                },{
                    name : 'dat_db_id'
                }]
            }),
            listeners:{
                load:function(){
                    if(this.data.length<1)
                    msgTip = Ext.MessageBox.show({
                        title:'提示',
                        width : 250,
                        msg:'当前数据库无匹配结果'
                    });
                }
            }
        });
        dws.designer.QueryTableGrid.superclass.initComponent.call(this);
    },

你可能感兴趣的:(在store中加load事件)