Ext_数据模型

ExtJS的数据模型有:

 

1.数据记录:Record

   数据集合中的一个记录,存放数据定义信息和他们的值

 

2.数据集:Store

   一个保存数据记录(Record)的集合

 

3.数据代理:Proxy

   获取数据的代理

 

4.数据解析器:DataReader

   将代理Proxy读取的数据,按一定格式,规范,转换为Record对象并存入Store中

 

 

 

Store的基本配置:

var s = new Ext.data.Store({ //是否自动加载 autoLoad : true, //数据解析方式   read : new Ext.data.JsonReader({...}),   //获取数据源 proxy : new Ext.data.HttpProxy({ url:'...' }), //事件处理   listeners:{ //处理请求中的意外 loadexception:function(node) { alert("与服务器通讯请求超时"); } } });

 

 

 

DataReader数据解析器有:

/* 要解析的Json数据对象 var json = { results:3, rows:[ {id:1,first:'A',second:'B'}, {id:2,first:'C',second:'D'}, {id:3,first:'E',second:'F'} ] } */ var jsonReader = new Ext.data.JsonReader( //定义元数据信息 { idProperty:'id', //指定记录中的ID字段 totalProperty:'results', //指定记录集总数 root:'rows' //指定包含所有对象的数组 }, //定义记录格式 Ext.data.Record.create([ {name:'id'}, {name:'first'}, {name:'second'} ]) ); /* 要解析的XML数据对象 ######## 服务器端设置xml发送格式 ######## context.Response.ContentType = "application/xml;charset=UTF-8"; ###################################### <Language> <results>3</results> <ExchangeLang LangName="英文" Value="English"></ExchangeLang> <ExchangeLang LangName="中文(普通话)" Value="Chinese"></ExchangeLang> <ExchangeLang LangName="法语" Value="French"></ExchangeLang> </Language> */ var xmlReader = new Ext.data.XmlReader( //定义元数据信息 { totalProperty:'results', //指定记录集总数 record:'ExchangeLang' //指定包含所有对象的数组 }, //定义记录格式 Ext.data.Record.create([ {name:'ShowName',mapping:'@LangName'}, //映射xml文件中对应属性值 {name:'Value',mapping:'@Value'} ]) ); /* 要解析的数组数据对象 [[1,'A','B'],[2,'C','D'],[3,'E','F']] */ var arrayReader = new Ext.data.ArrayReader( //定义元数据信息 { idProperty:0 //指定记录中的ID下标 }, //定义记录格式 Ext.data.Record.create([ {name:'id',mapping:0}, {name:'first',mapping:1}, {name:'second',mapping:2} ]) );

 

 

除此外,对于JsonReader可使用metaData不创建元数据信息,元数据信息可包含在服务器端返回信息中

服务器返回数据:

/* 使用metaData { metaData:{ idProperty:'id', //指定记录中的ID字段 totalProperty:'results', //指定记录集总数 root:'rows', //定义记录格式 fields:[ {name:'id',mapping:'id'}, {name:'first',mapping:'first'}, {name:'second',mapping:'second'} ] }, results:3, rows:[ {id:1,first:'A',second:'B'}, {id:2,first:'C',second:'D'}, {id:3,first:'E',second:'F'} ] } */ //此时只需声明一空Ext.data.JsonReader()对象即可 var metaDataReader = new new Ext.data.JsonReader()

 

你可能感兴趣的:(Ext_数据模型)