04extjs的读写器
来源:互联网 发布:2017手机淘宝捉猫猫 编辑:程序博客网 时间:2024/06/16 16:25
day04 extjs的读写器Reader:主要用于将proxy数据代理读取的数据按照不同的规则进行解析,将解析好的数据保存到Model中结构图Ext.data.reader.Reader 读取器的根类Ext.data.reader.Json JSON格式的读取器Ext.data.reader.Array 扩展JSON的Array读取器Ext.data.reader.Xml XML格式的读取器Writer结构图Ext.data.writer.WriterExt.data.writer.Json 对象被解释成JSON的形式传到后台Ext.data.writer.Xml 对象呗解释成XMl的形式传到后台1.Ext.data.reader.Json(function(){Ext.onReady(function(){var userData = {//内存式数据集//total:200,//返回值的条数,默认totalProperty的名称是totalcount:250,user:{userID:'1',name:'cat.com',orders:[//一对多 一个user对应两个order{id:'001',name:'pen'},{id:'002',name:'book'}]}};//modelExt.regModel("user",{fields:[{name:'userID',type:'string'},{name:'name',type:'string'}],hasMany:{model:'order'/**,name:'orders' 默认是多那方的model名称加上s*/}});Ext.regModel("order",{fields:[{name:'id',type:'string'},{name:'name',type:'string'}],belongsTo:{type:'belongsTo',model:'user'}});var mproxy = Ext.create("Ext.data.proxy.Memory",{//内存代理model:'user',//只要代理user就好了data:userData,//数据项是userDatareader:{type:'json',root:'user',implicitIncludes:true//是否级联读取,默认为truetotalProperty:'count'//指定的total值就是count属性}});//把数据和模型绑在一起,并将数据读入model层mproxy.read(new Ext.data.Operation(),function(result){var datas = result.resultSet.records;alert(result.resultSet.total);//读取的属性名称在resultSet中仍为total,值为count的值Ext.Array.each(datas,function(model){alert(model.get("name"));});//级联读取var user = result.resultSet.records[0];var orders = user.orders();//不是数组,是对象的集合,即storeorders.each(function(order){alert(order.get('name'));});/**解析recorduser:[{auditor:'lily'//审核员,info:{userID:'1',name:'cat',orders:[{id:'001',name:'pen'},{id:'002',name:'book'}]}}]read:{type:'json',root:'user',implicitIncludes:true,totalProperty:'count',record:'info'//有效信息标识,有用信息都从info中来//服务器返回的数据可能很复杂,用record可以筛选出有用的数据信息,装载到Model中}*/});});})();2.Ext.data.reader.Xmlusers.xml文件<users><user><name>cat.com</name><id>00101</id></user></users>readerxml.js文件(function(){Ext.onReady(function(){Ext.regModel("user",{fields:[{name:'name'},{name:'id'}],proxy:{type:'ajax',url:'users.xml',reader:{//读取器type:'xml',record:'user'}}});var user = Ext.ModelManager.getModel('user');user.load(1,{success:function(model){alert(model.get('name'));}})});})();3.Ext.data.reader.ArrayExt.onReady(function(){Ext.regModel("person",{fields:[{name:'name'},{name:'age'}/**'name','age'也可以通过*/],proxy:{type:'ajax',url:'person.jsp',reader:{type:'array'}}});var person = Ext.ModelManager.getModel('person');person.load(1,{success:function(model){alert(model.get('name'));}});});person.jsp文件<%response.getWriter().write("[['abc',26]]");%>4.Ext.data.writer.JsonExt.onReady(function(){Ext.regModel("person",{fields:['name','age'],proxy:{type:'ajax',url:'person.jsp',writer:{type:'json'//type:'xml'}}});Ext.ModelMgr.create({name:'cat',age:1},'person').save();//不同处在于model名称写在最后});
0 0
- 04extjs的读写器
- 预览ExtJS 4.0的新功能(六):读写器/Opeartion
- ExtJS兑现动态读写Checkboxgroup
- 【ExtJs】ExtJs的Ajax
- ExtJs--引用的ExtJs路径
- 【ExtJs】ExtJs的文件上传
- extjs中关于itemselector的选取器
- 基于ExtJs的JavaScript拦截器
- Extjs4.0的读写器
- extjs学习04——extjs的初级UI设计1
- 【ExtJs】ExtJs的富文本编辑器
- ExtJS树的使用
- extjs tree的使用
- 对ExtJs的态度
- ExtJs的菜单导航
- extjs 乱码的问题
- Extjs的DWRProxy
- extjs的基本用法
- swift
- RadioButtonList 选项的水平排列 自动换行
- ABAddressBookCreate is deprecated: first deprecated in IOS6.0
- 经纬财富:常州现货白银投资初学者如何看实时行情图
- PHP防止XSS注入
- 04extjs的读写器
- HDOJ ACM 题目
- document.body.onclick document监听事件兼容性的几种写法
- 批量收缩数据库日志文件
- C++ 微秒级统计程序运行时间
- APK文件修改及编译打包备忘
- JS数组方法汇总 array数组元素的添加和删除
- 业务账号的状态维护
- asp.net mvc 后台代码在前台输出时出现 & 等乱码