Ext之 model,one2many.proxy.validation _____lesson3
来源:互联网 发布:网络作家富豪榜2017年 编辑:程序博客网 时间:2024/05/05 23:19
------------------------lesson3.html-------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>EXTJS4.0</title>
<link rel="stylesheet" type="text/css" href="../../../../extjs4/resources/css/ext-all.css" />
<script type="text/javascript" src="../../../../extjs4/bootstrap.js"></script>
<script type="text/javascript" src="../../../../extjs4/locale/ext-lang-zh_CN.js"></script>
<!--<script type="text/javascript" src="model.js"></script>-->
<!--<script type="text/javascript" src="validations.js"></script>-->
<script type="text/javascript" src="proxy.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
</body>
</html>
--------------------------model.js----------------------------------------------------------------
(function(){
Ext.onReady(function(){
//我们利用Ext.define来创建我们的模型类
//DB table person(name,age,email)
Ext.define("person",{
extend:"Ext.data.Model",
fields:[
{name:'name',type:'auto'},
{name:'age',type:'int'},
{name:'email',type:'auto'}
]
});
//MVC模式中model一定是M层 这样可以不用写 extend:"Ext.data.Model", 直接就返回model;
Ext.regModel("user",{
fields:[
{name:'name',type:'auto'},
{name:'age',type:'int'},
{name:'email',type:'auto'}
]
});
//实例化我们的person类
//1.new关键字
var p = new person({
name:'uspcat.com',
age:26,
email:'yunfengcheng2008@126.com'
});
//alert(p.get('name'));
var p1 = Ext.create("person",{ // 建议使用;
name:'uspcat.com',
age:26,
email:'yunfengcheng2008@126.com'
});
//alert(p1.get('age'));
var p2 = Ext.ModelMgr.create({
name:'uspcat.com',
age:26,
email:'yunfengcheng2008@126.com'
},'person');
//alert(p2.get('email'));
//alert(p2.getName());//? class object.getClass.getName 不可以这样来获得class; 因为p2 是个对象; 需要用类 getName 方法来获取class;如下面person.getName
alert(person.getName());
});
})();
---------------------------------------------------------one2many--------------------------------------
(function(){
Ext.onReady(function(){
//类 老师
Ext.regModel("teacher",{
fideld:[
{name:'teacherId',type:"int"},
{name:'name',type:"auto"}
],
hasMany:{ // 和学生一对多;
model: 'student',
name : 'getStudent', // 得到子类的一个store数据集合
filterProperty: 'teacher_Id' // 外键名字; 和 下面管理的学生的teacher_Id 保持一致;
}
});
//学生
Ext.regModel("student",{
fideld:[
{name:'studentId',type:"int"},
{name:'name',type:"auto"},
{name:"teacher_Id",type:'int'}
]
});
//t.students (这里是students 而不是student) 得到子类的一个store数据集合 如果没有写 name : 'getStudent', 的话;可以这样获取;
})
})();
---------------------------------------------------person.jsp---------------------------------------
<%@page language="java" contentType="text/html" pageEncoding="UTF-8"%>
<%
System.out.println(request.getParameter("id"));
response.getWriter().write("{name:'uspcat.com',age:26,email:'yfc@126.com'}");
------------------------------------------------proxy.js--------------------------------------------------------------
(function(){ // proxy; 用来完成数据的 crud'
Ext.onReady(function(){
Ext.define("person",{
extend:"Ext.data.Model",
fields:[
{name:'name',type:'auto'},
{name:'age',type:'int'},
{name:'email',type:'auto'}
],
proxy:{
type:'ajax',
url:'person.jsp'
}
});
var p = Ext.ModelManager.getModel("person"); // 获取一个属性为空的 person实例化对象
p.load(1, { // 这里1 是id;
scope: this,
failure: function(record, operation) {
},
success: function(record, operation) {
alert(record.data.name) // data 对象是个对象;
},
callback: function(record, operation) {
}
});
})
})();
------------------------------------validation.js--------------------------------------------------------------
(function(){
Ext.data.validations.lengthMessage = "错误的长度";
Ext.onReady(function(){
//扩展也就是我们自定义验证机制的的一个新的验证方法
Ext.apply(Ext.data.validations,{
age:function(config, value){
var min = config.min;
var max = config.max;
if(min <= value && value<=max){
return true;
}else{
this.ageMessage = this.ageMessage+"他的范围应该是["+min+"~"+max+"]";
return false;
}
},
ageMessage:'age数据出现的了错误' // 这里似乎要和 age 类名保持一致; 如 msg 类里面需要msgMessage;
});
Ext.define("person",{
extend:"Ext.data.Model",
fields:[
{name:'name',type:'auto'},
{name:'age',type:'int'},
{name:'email',type:'auto'}
],
validations:[
{type:"length",field:"name",min:2,max:6},
{type:'age',field:"age",min:0,max:150}
]
});
var p1 = Ext.create("person",{
name:'uspcat.com',
age:-26,
email:'yunfengcheng2008@126.com'
});
var errors = p1.validate(); // p1 里面有validations; 调用p1.validatae方法 返回一个错误的数组;
var errorInfo = [];
errors.each(function(v){ // 遍历error 的时候断点打出来的 属性; v 是个对象; v.field;
errorInfo.push(v.field+" "+v.message);
});
alert(errorInfo.join("\n"));
});
/**
* name 2~6
* set(String name){
* if(){
* }else{
* }
* }
*/
//age 不能小于0也不能大于150
})();
- Ext之 model,one2many.proxy.validation _____lesson3
- extjs之model,store,reader, proxy
- proxy model
- Ext.data.proxy.Proxy
- EXTJS4 新特性之Ext.data.Model
- EXTJS4 新特性之Ext.data.Model
- hibernate之6.one2many单向
- hibernate之7.one2many双向
- 玩转extjs5之Ext.data.proxy.Ajax(六)
- 转载:EXTJS4 新特性之Ext.data.Model
- ExtJS教程(4)---Ext.data.Model之基础应用
- ExtJS教程(5)---Ext.data.Model之高级应用
- 模型验证(Model Validation)
- Adding Validation to the Model
- Ext.data.Model
- 继承Ext.data.Model
- 玩转extjs5之Ext.data.Model和Ext.data.Store(四)
- 玩转extjs5之Ext.data.Model和Ext.data.Store
- 1006. Sign In and Sign Out (25)-PAT
- ASP.NET之5种全局变量!页面间传值方法
- 2013编程之美挑战赛---传话游戏
- jq单击显示隐藏
- 【91xcz*英雄联盟虚空行者卡萨丁xp主题*91xcz】
- Ext之 model,one2many.proxy.validation _____lesson3
- 海外网络电视用户大力推荐—【BETV】新版震撼来袭
- iOS-cocos2d 精灵缩放效果
- 工厂三兄弟之简单工厂模式(二)
- 科学精准的营销被认为是有效帮助企业赢得竞争的重要利器
- HDOJ--1114--Piggy-Bank【背包问题】
- c#打开网址
- 从可执行命令 确定 RPM软件包
- 将myeclipse项目部署到eclipse