Ext的数据存储器为:Ext.data.Store
ExtJS中有一个名为Record的类,表格等控件中使用的数据是存放在Record对象中,一个Record可以理解为关系数据表中的一行,也可以称为记录。Record对象中即包含了记录(行中各列)的定义信息(也就是该记录包含哪些字段,每一个字段的数据类型等),同时又包含了记录具体的数据信息(也就是各个字段的值)。一个比较正规的创建store的代码如下:
var MyRecord = Ext.data.Record.create([
{name: 'title'},
{name: 'username', mapping: 'author'},
{name: 'loginTimes', type: 'int'},
{name: 'lastLoginTime', mapping: 'loginTime', type: 'date'}
]);
var dataProxy=new Ext.data.HttpProxy({url:"login.do"});
var theReader=new Ext.data.JsonReader({
totalProperty: "results",
root: "rows",
id: "id"
},MyRecord
);
var store=new Ext.data.Store({
proxy:dataProxy,
reader:theReader
});
store.load();
store在创建的时候会自动使用HttpProxy来加载参数,并且使用post方式来提交请求,因此上面的代码可简化为:
var MyRecord = Ext.data.Record.create([
{name: 'title'},
{name: 'username', mapping: 'author'},
{name: 'loginTimes', type: 'int'},
{name: 'lastLoginTime', mapping: 'loginTime', type: 'date'}
]);
var theReader=new Ext.data.JsonReader({
totalProperty: "results",
root: "rows",
id: "id"
},MyRecord
);
var store=new Ext.data.Store({
url:'login.do',
reader:theReader
});
store.load();
在Store类的基础上提供了SimpleStore、JSonStore、GroupingStore等,因此上面的JsonReader可以省略:
var store = new Ext.data.JsonStore({
url:'contact.do',
root:'data',
totalProperty:'totalCount',
fields:[{name: 'vid', mapping: 'id'},
{name: 'name', mapping: 'name'},
{name: 'vmethod', mapping: 'vmethod'}]
});