day05
数据集store
store是一个存储数据对象Model的集合缓存,他可以为extjs的可视化组件提供
数据(GridPanel,ComboBox)等
类结构
Ext.data.AbstractStore
Ext.data.Store 一般此类可以满足日常的开发
Ext.data.ArrayStore
Ext.data.DirectStore
Ext.data.JsonStore 内置辅助的类
Ext.data.TreeStore
Ext.data.Store使用
参数
autoLoad(Boolean/Object):自动加载数据,自动调用load
data(Array):内置数据对象的数组
model(Model):数据集合相关的模型
fields(Field):字段的集合,程序会自动生成对应的Model
方法
each(Function f,[Object scope]):void 变量数据中的Model
(function(){
//启用Loader
Ext.Loader.setConfig({
enabled:true,
});
Ext.onReady(function(){
/**Ext.define("person",{
extend:'Ext.data.Model',
fields:[
{name:'name'},
{name:'age'}
],
proxy:{
type:'memory'
}
});*/
var s = new Ext.data.Store({
fields:[
{name:'name'},
{name:'age'}
],
/**data:[
{name:'car',age:1},
{name:'cat',age:26}
],//若同时存在,会先加载data的数据而不是代理中的数据*/
//model:'person',//若将fields放在store中,此处可省略
proxy:{
type:'ajax',//一定要注意先加载后遍历
url:'person.jsp'
}
//autoLoad:true//若使用代理,此处可省略
});
/**s.each(function(model){
alert(model.get('name'));
});//采用代理直接遍历是错误的*/
s.load(function(records,operation,seccess){
Ext.Array.each(records,function(model){
alert(model.get('name'));
//filter方法测试
s.filter('name','car');
s.each(function(model){
alert(model.get('name'));
});
//find方法测试
var index = s.find('name','cat',0,false,true,false);
//从0开始查找,是否全部查找,是否区分大小写,是否全部匹配
alert(index);//找的到则返回所在的index,否则-1
});
});
});
})();