ExtJs中Store的种类
ExtJs中Store的种类
ExtJs中Store的种类一、什么store
Store类似于一个本地仓库(即数据存储器),包括有 ArrayStore,DirectStore,GroupingStore,JsonStore,XmlStore(都是store的子类),最终主要用于提供给panel去显示.
Store由Proxy(数据源)和DataReader(解读数据)组成
1、(Proxy)数据源:一般是后台的值,习惯性的把它转换成json对象给store
2、(DataReader)读取数据:获得了数据后需要解析数据,DataReader(fields属性其实是Record对象的)解析数据并指定格式.
二、store传参的几种方法
//第一种
var store = new Ext.data.Store({
baseParams: {
params1 : '1',
params2 : '2'
}
});
//第二种
var params = {start:0,limit:limit};
store.load({params: params});
//第三种
store.load({
params:{
start:0,
limit:10
}
});
//第四种
store.baseParams=params;
三、Ext.data.Store实例
var store = new Ext.data.Store({
/*
proxy的作用是通过内存获取原始数据,然后将获取的数据交给对应的读取器进行处理
MemoryProxy只能从Javascirp对象获取数据,可以直接把数组或者JSON和XML格式的数据交给他处理
*/
proxy : new Ext.data.MemoryProxy([
['tom',18],
['cat',20]
]),
//用于将原始数据转换成record实例
reader : new Ext.data.ArrayReader({
fields : [
{name : 'name',type : 'string'},
{name : 'age',type : 'int'}
]
})
});
store.load();
四、Ext.data.ArrayStore实例
var store = new Ext.data.ArrayStore({
fields: ['name','age'],
data: [
['tom',18],
['cat',20]
]
});
五、Ext.data.SimpleStore实例
SimpleStore=Store+MemoryProxy+ArrayReader
SimpleStore是不需要写load()方法
var store = new Ext.data.SimpleStore({
data : [
['tom',18],
['cat',25]
],
fields : [
{name : 'name',type : 'string'},
{name : 'age',type : 'int'}
]
});
六、Ext.data.JsonStore实例
JsonStore=Store+HttpProxy+JsonReader
JsonStore需要写load()方法
var store = new Ext.data.JsonStore({
url : 'list。ashx',
root : 'root',
fields : [
{name : 'name',type : 'string'},
{name : 'age',type : 'int'}
]
});
store.load();
其中从 list。ashx获取的数据如:
[{'id':1,'name':'小王','sex':'男'}, {'id':2,'name':'小李','sex':'男'}, {'id':3,'name':'小兰','sex':'女'} ];
七、Ext.data.GroupingStore对数据分组
store.groupBy('sex');//重新对sex进行分组
store.clearGrouping();//清除分组
如果使用GroupingStore就要给grid设置view配置项
view: new Ext.grid.GroupingView({
enableGroupingMenu:false,
groupByText:'分组',
showGroupsText:'显示',
hideGroupedColumn:true,
forceFit:true,
groupTextTpl: '{text} ({[values.rs.length]}条数据)'
}),
分组本地数据
var store = new Ext.data.GroupingStore({
data : [
['tom',18,'男'],
['cat',25,'女'],
['team',18,'男'],
['jock',26,'女']
],
reader : new Ext.data.ArrayReader({
fields : [
{name : 'name',type : 'string'},
{name : 'age',type : 'int'},
{name : 'sex',type : 'string'}
]
}),
groupField : 'age',//设置分组字段
sortInfo : {
field : 'age',
direction : 'desc'
}
});
- sqlserver查看创建的索引(浅述SQL Server的聚焦强制索引查询条件和Columnstore Index)
- ExtJs中Store的种类
- cookie政策及设置(详解操作cookie的原生方法cookieStore)
- vue组件keep-alive的原理是什么(如何理解Vue简单状态管理之store模式)
- 冬季养殖这6种阴生植物,方便又好养,你家有么(冬季养殖这6种阴生植物)
- 阴生植物为什么不怕照不到阳光(阴生植物为什么不怕照不到阳光)
- 阴生环境 耐阴地被植物,你知道哪些(阴生环境耐阴地被植物)
- 常见的喜阴植物有哪些 养室内盆栽就在这里选(常见的喜阴植物有哪些)
- 这8种耐阴植物,营造阴生植物花境,也是一个不错的选择(营造阴生植物花境)
- 览邦G08 Plus SMART WATCH 测评⑱ 全独立这才是智能手表该有的样子(览邦G08PlusSMART)
热门推荐
- mysql8.0详解(MySQL 8.0 的 5 个新特性,太实用了!)
- dedecms安全设置(织梦dedecms站点data目录位置变动调整验证码不显示的解决办法)
- python如何解压加密zip文件(python读取有密码的zip压缩文件实例)
- thinkphp5框架怎么打开(thinkphp5.1框架模板布局与模板继承用法分析)
- apache 的服务器配置(正确维护配置Apache服务器的方法 保护系统安全)
- php抽奖功能(php+lottery.js实现九宫格抽奖功能)
- SQLServer中使用扩展事件获取Session级别的等待信息及SQLServer 2016中Session级别等待(SQLServer中使用扩展事件获取Session级别的等待信息及SQLServer 2016中Session级别等待)
- python定时推送邮件(python实现定时压缩指定文件夹发送邮件)
- 前端app开发适配消息栏(AmazeUI 导航条的实现示例)
- html5清除浮动的方法(HTML5实现移动端点击翻牌功能)