eg.store的数据大小的获取需要在其里面的callback函数获取。
store.reload({params:{start:0, limit:10},
callback : function() {
alert(store0.getCount());
alert(store0.getAt(0).get('value1'))
}});
比如store加载完后如果里面没有数据,需要弹框,就需要用到callback函数了。
eg.
store的获取;
Leangle.form.combo.ColorComboBox = Ext.extend(Leangle.form.BaseComboBox,{
id : "combo_color",
name:'colorId',
hiddenName:'colorId',
valueField : "colorId",
displayField : "colorName",
fieldLabel : "颜色",
store:new Ext.data.JsonStore({
id:'store_color',
url : "whInput!getColorList.action",
method : "post",
root : "ColorList",
fields : ["colorId", "colorName"],
autoLoad : true
})
});
Ext.getCmp('store_color');这个方法获取到的是一个undefined的对象,也就是说,获取不到,或者说,页面根本就不存在这个对象。
从getCmp()的源码中可以理解到。getCmp()其实就是获取这个页面上的某个div。Store如果不 是保存在页面的话,那么就肯定是保存在内存中(而这也符合对数据的保护)。另一方,Store如果不是保存在页面的话,那么getCmp()当然也就不能 获取到它了
StoreMgr对象就是用来管理Store的。也就是说,这个对 象在Ext初始化之后,就存在了,采用单例模式,并负责store的存储和管理工作。这个对象估计就是存储在内存中的。我们声明的Store被保存到这里 来了
Ext.getCmp('combo_color').store;//通过引用这个store的控件来获取这个store
Ext.StoreMgr.get('store_color'); //通过这个全局store管理器来获取