ExtJs的Reader
ExtJs的Reader
Reader : 主要用于将proxy数据代理读取的数据按照不同的规则进行解析,讲解析好的数据保存到Modle中
结构图
Ext.data.reader.Reader 读取器的根类
Ext.data.reader.Json JSON格式的读取器
Ext.data.reader.Array 扩展JSON的Array读取器
Ext.data.reader.Xml XML格式的读取器
Writer
结构图
Ext.data.writer.Writer
Ext.data.writer.Json 对象被解释成JSON的形式传到后台
Ext.data.writer.Xml 对象被解释成XML的形式传到后台
1. Json的读取器
- (function(){
- Ext.onReady(function(){
- var userData = {
- //total : 200,
- count:250,
- user:{
- userID:'1',
- name:'uspcat.com',
- orders:[
- {id:'001',name:'pen'},
- {id:'002',name:'book'}
- ]
- }
- };
- //定义model
- Ext.regModel("user",{
- fields:[
- {name:'userID',type:'string'},
- {name:'name',type:'string'}
- ],
- hasMany: {model: 'order'} //定义有多个order的属性
- });
- 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',
- data:userData,
- reader:{
- type:'json',
- root:'user',
- implicitIncludes:true, //级联读取
- totalProperty:'count'
- //record :'info'//服务器返回的数据可能很复杂,用record可以删选出有用的数据信息,装在带Model中
- }
- });
- mproxy.read(new Ext.data.Operation(),function(result){
- var datas = result.resultSet.records;
- alert(result.resultSet.total); //打印count
- Ext.Array.each(datas,function(model){
- alert(model.get('name'));
- });
- var user = result.resultSet.records[0]; //获取第一个用用数据
- var orders = user.orders(); //获取到用户中的orders集合
- orders.each(function(order){ //遍历orders集合
- alert(order.get('name'));
- });
- });
- });
- })();
2. Array读取器
- Ext.onReady(function(){
- Ext.regModel("person",{
- fields:[
- 'name','age'
- // {name:'name'},
- // {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("[['yunfengcheng',26]]");
%>
3. XML格式的读取器
- (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);
- alert(model.get('id'));
- }
- });
- });
- })();
Users.xml文件:
- <users>
- <user>
- <name>uspcat.com</name>
- <id>00101</id>
- </user>
- </users>
4. writer的Json和xml
- Ext.onReady(function(){
- Ext.regModel("person",{
- fields:[
- 'name','age'
- ],
- proxy :{
- type:'ajax',
- url:'person.jsp',
- writer:{
- type:'json' //使用Json提交数据
- //type:'xml' //使用xml提交数据
- }
- }
- });
- Ext.ModelMgr.create({
- name:'uspcat.con',
- age:1
- },'person').save();
- });
使用Json写入的时候,浏览器查看提交信息是如下图,是以json提交的:
使用xml写入的时候,浏览器查看提交信息是如下图,是以xml提交的:
原文链接:https://blog.csdn.net/hanhan313/article/details/8159774
ExtJs的Reader的更多相关文章
- ExtJS笔记 Reader
Readers are used to interpret data to be loaded into a Model instance or a Store - often in response ...
- EXTJS之DATA PROXY READER
这是不依赖于STORE的读取.我测试了很久,原来在新版本的EXTJS里.modelmanager.getmodel之类的不用了. 更改为静态的LOAD办法. <!DOCTYPE html> ...
- ExtJS 4.2 业务开发(二)数据展示和查询
本篇开始模拟一个船舶管理系统,提供查询.添加.修改船舶的功能,这里介绍其中的数据展示和查询功能. 目录 1. 数据展示 2. 数据查询 3. 在线演示 1. 数据展示 在这里我们将模拟一个船舶管理系统 ...
- [转]ExtJS Grid 分页时保持选中的简单实现方法
原文地址 :http://www.qeefee.com/article/ext-grid-keep-paging-selection ExtJS中经常要用到分页和选择,但是当选择遇到分页的时候,杯具就 ...
- ExtJs基础知识总结:自定义弹窗和ComboBox自动联想加载(四)
概述 Extjs弹窗可以分为消息弹窗.对话框,这些弹窗的方式ExtJs自带的Ext.Msg.alert就已经可以满足简单消息提示,但是相对复杂的提示,比如如何将Ext.grid.Panel的控件显示嵌 ...
- ExtJS基础知识总结:自定义日历和ComboBox控件(二)
概述 1.ExtJS 5不支持日期选择框中只选择年月,为了满足ExtJs5可以实现选择年月的功能,查询网上资料,整理出来了相应的处理方式,最终实现的效果如下图: 2.ExtJS 控件丰富,如果需要实现 ...
- extjs 学习小窍门
一.从form中获取field的三个方法: 1.Ext.getCmp('id'); 2.FormPanel.getForm().findField('id/name'); 3.Ext.get('id/ ...
- Extjs 源码组成(4.0.7)
(function(){})()形式的自执行,构建Ext对象(0~584) 1 设置全局对象EXt:global.Ext = {}, 2 实现了Ext对象面向对象编程的基础方法,如,apply,ex ...
- ExtJs 之 ComboBox级联使用
刚接触ExtJs不到一周,项目使用ExtJs框架,有个版块用到了combobox的级联(两级),遇到了一系列的问题,两天来一直查API.网络资料,终于解决了. 先列出遇到的一系列问题(也许你也遇到过! ...
随机推荐
- 单点登录(十三)-----实战-----cas4.2.X登录启用mongodb验证方式完整流程
我们在之前的文章中中已经讲到了正确部署运行cas server 和 在cas client中配置. 在此基础上 我们去掉了https的验证,启用了http访问的模式. 单点登录(七)-----实战-- ...
- 单点登录(九)-----遇到问题-----FileNotFoundException: class path resource-UsernamePasswordWrapperAuthenticatio
运行cas server 项目时 报错 FileNotFoundException: class path resource-UsernamePasswordWrapperAuthenticatio ...
- Java考试题之七
QUESTION 150 Click the Exhibit button. Given: ClassA a = new ClassA(); a.methodA(); What is the resu ...
- Android获取程序路径 (/data/data/appname)
Android获取文件夹路径 /data/data/ http://www.2cto.com/kf/201301/186614.html String printTxtPath = getApplic ...
- 一次DS总结+一些闲话
“只要你们搞懂这一轮……你们就可以……” 在zcy(或是xgg)来之前,hfu如是说. 但是…… “这一轮……可能是有一点……毕竟弄完了可以进……恩,我们的路还长啊!” 着实,也是.本人在xgg_na ...
- Chapter10(泛型算法)--C++Prime笔记
关键:算法通过在迭代器上进行操作来实现类型无关.算法不改变所操作序列的大小. 1.算法大多都定义在algorithm头文件中,标准库还在头文件numeric中定义了一组数值泛型算法. 2.泛型算法永远 ...
- 什么是Docker并且它为什么这么受欢迎
什么是Docker (why it's so hot than hot) Docker是一个使用容器来方便快捷的创建,部署,运行程序的工具,容器允许开发人员将应用程序的一切打包(镜像),例如库和其他的 ...
- python基础之面向对象01
什么是面向对象? 所谓面向对象就是将那些具有共同特质的事物组成一个类(Class),在类中为这些特质定义一个个方法(函数). 具体一点,比如说英雄联盟.在英雄联盟中我们可以把所有的英雄划分为一个英雄类 ...
- 「Vue」v-html生成的图片大小无法调整的解决办法
问题: v-html生成的图片调整大小属性没用<div class="content" v-html="pdinfo.content"></d ...
- P2657 [SCOI2009]windy数
P2657 [SCOI2009]windy数 题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B ...