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
原创粉丝点击