`
tmartin
  • 浏览: 102212 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Extjs学习笔记(五) 数据读写器

 
阅读更多

结构:



 Modle中
结构图
    Ext.data.reader.Reader 读取器的根类
        Ext.data.reader.Json JSON格式的读取器
            Ext.data.reader.Array 扩展JSON的Array读取器
        Ext.data.reader.Xml XML格式的读取器

 

@Ext.data.reader.Json

(function(){
	Ext.onReady(function(){
		var userData = {
			//total : 200,
			count:250,
			user:[{auditor:'yunfengcheng',info:{
				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'}
		});
		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',             //具体的数据,data(抛出count等描述信息)
				implicitIncludes:true,      //是否级联
				totalProperty:'count',   //改变读取 描述总数的字段名,如total->count
				record : 'info'//服务器返回的数据可能很负载,用record可以筛选出有用的数据信息,装在带Model中
			}
		});
		mproxy.read(new Ext.data.Operation(),function(result){
			var datas = result.resultSet.records;
			alert(result.resultSet.total);
			Ext.Array.each(datas,function(model){
				alert(model.get('name'));
			});
                         //开始处理管理数据。
			var user = result.resultSet.records[0];
			//一个Store
			var orders = user.orders();
			orders.each(function(order){
				alert(order.get('name'))
			});
			
		})
	});
})();

@Ext.data.reader.Array

person.jsp

<%@page language="java" contentType="text/html" pageEncoding="UTF-8"%>
<%
	response.getWriter().write("[['yunfengcheng',26]]");
%>
 

 

js:

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'))
			}
		})
});
 

 

@Ext.data.reader.Xml

users.xml

<users>
	<user>
		<name>uspcat.com</name>
		<id>00101</id>
	</user>
</users>
 

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)
				alert(model.get('id'))
			}
		})
	});
})();
 

Writer
结构图
    Ext.data.writer.Writer
        Ext.data.writer.Json 对象被解释成JSON的形式传到后台
        Ext.data.writer.Xml  对象被解释成XML的形式传到后台

 

@Ext.data.writer.Json

  以POST方式向后台写入数据

Ext.onReady(function(){
	Ext.regModel("person",{
		fields:[
			'name','age'
		],
		proxy :{
			type:'ajax',
			url:'person.jsp',
			writer:{
				//type:'json'
				type:'xml'
			}
		}
	});
	Ext.ModelMgr.create({  //等于Ext.ModelMgr.create
		name:'uspcat.con',
		age:1
	},'person').save();
		
})
 
  • 大小: 17.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics