Ext3.0引入三个文件
<script type="text/javascript" src="${ctxPath}/framework/scripts/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="${ctxPath}/framework/scripts/ext/ext-all.js"></script>
<link rel="stylesheet" type="text/css" href="${ctxPath}/framework/scripts/ext/resources/css/ext-all.css" />
EXT4 引入
<link rel="stylesheet" type="text/css" href="./ext4/resources/css/ext-all.css">
<script type="text/javascript" src="./ext4/bootstrap.js"></script>
JS中声明对象方法用prototype关键字
Object.prototype.get=function(key,defVal){
if(this[key]){
return this[key];
}
return defValue;
}
var person={name:'UNKNOW',age:26};
person.name='xiaoming';
Ext.MessageBox.alert("title",person.get('name'));
声明对象有两种形式
1:普通形式
function User(){
//相当于java的private 私有变量
var name='xiaolong';
//相当于java的public变量
this.age=26;
this.getName=function(){
return name;
}
};
2:json形式
var person ={ name:'xiaoming',age:25,getName:function(){return this['name']} };
区别在于 json申明的对象不需要new就可直接使用,普通形式申明的对象须new后才能使用。
Ext添加异步加载js的新功能
Ext.onReady(function() {
Ext.Loader.setConfig({
enabled : true, // 一定用为true不然会找不到 js.MyWin
paths : {
myApp : 'js' // 不知道用什么用
}
});
var myWin = Ext.create("js.MyWin"// 这儿会异步加载 js/MyWin.js
, {
html : 'ffff',
price:600,//初始换config里的price变量
xxx:'vvv'
// requires : ['myApp']//异步加载
})
alert(myWin.getPrice());
Ext.get('test1').on('click', function(t1) {
myWin.setNewTitle();
myWin.show();
})
});
Ext.define()方法的 config 自动生成属性get和set
Ext.define("js.MyWin", {
config: {
price: 500
},
extend : 'Ext.window.Window',
width : 300,
height : 400,
newTitle : 'new title',
setNewTitle : function() {
this.title = this.newTitle;
},
initComponent : function() {
this.callParent();
}
});
Ext.define 的mixins 类的混合 作用相当于继承
Ext.define("say",{
cansay:function(){
alert("hello");
}
})
Ext.define("sing",{
sing:function(){
alert("sing hello 123");
}
})
Ext.define('user',{
mixins :{//相当于继承
say : 'say',
sing: 'sing'
}
});
var u = Ext.create("user",{});
u.cansay();
u.sing();
Ext.data.Model相当于数据库中的一张表
Ext.onReady(function() {
Ext.data.validations.lengthMessage = '长度不正确';//改变验证错误提示信息
Ext.define("Person", {//定义一Model的子类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
}],
proxy : {//设置加载代理
type : 'ajax',
url : '/ext-helloword/lesson3.jsp'
}
});
Ext.apply(Ext.data.validations, {//重写Ext.data.validations类的属性
lengthMessage : '长度不正确xxx'
});
var user = Ext.regModel("User", {
fields : [{
name : 'name',
type : 'auto'
}, {
name : 'age',
type : 'int'
}, {
name : 'email',
type : 'auto'
}]
})
var person = new Person({
nam : 'xiaoming',
age : 16,
email : 'xiaoming@qq.com'
});
var P1=Ext.ModelManager.getModel("Person");//得到数据模型
P1.load('1', {//重新加载数据,参数1 会作为id传到后台
success : function(p) {
console.log(p.data.name); //
}
});
/*
var errors = person.validate();//调用验证
var errorMsg = [];
errors.each(function(item) {
alert(item.field + item.message);
errorMsg.push(item.field + item.message);
})
// Ext.MessageBox.alert("title", person.get('name'));
* var user1 = Ext.create("User", { name : 'xiaolong', age : 26, email :
* 'xiaolong@qq.com' }); Ext.MessageBox.alert(user1.get('name')); var
* person2 = Ext.ModelManager.create({ name : 'longwu' }, "Person")
* alert(person2.get('name'));
*/
});
Ext.data.proxy包
保存数据到本地浏览器session
Ext.onReady(function() {
Ext.regModel("person", {
fields : [{
name : 'name',
type : 'auto'
}, {
name : 'age',
type : 'int'
}],
proxy : {
type : 'sessionstorage',//保存到本地session 保存到本地coockes用localstorage
id : 'twitter-Searches_session'
}
});
var store = new Ext.data.Store({
model : person
});
store.add({
name : 'xiaolong',
age : 22
});
store.sync();//保存数据
store.load();
var msg = [];
store.each(function(item) {
msg.push(item.get('name')+"\n");
});
alert(msg)
});
保存到浏览器内存
Ext.onReady(function() {
Ext.regModel("user", {
fields : [{
name : 'name',
type : 'auto'
}, {
name : 'age',
type : 'int'
}, {
name : 'email',
type : 'auto'
}]
});
var data1 = [{
name : 'cccc.com',
age : 22,
email : 'xxdf@fff.com'
}, {
name : 'xiaoming',
age : 23,
email : 'xxxc@126.com'
}];
var memoryProxy = Ext.create("Ext.data.proxy.Memory", {//创建本地内储
data : data1,
model : user
});
var data2 = [{
name : '444',
age : 42,
email : 'fdfds'
}];
data1.push({name:'xxxx',age:22,email:'fff'});//放入一条数据
memoryProxy.update(new Ext.data.Operation({//此处的更新方法没用
action: 'update',
data : data2
}));
memoryProxy.read(new Ext.data.Operation(), function(result) {
var datas = result.resultSet.records;
Ext.Array.each(datas, function(item) {
alert(item.get('name'));
});
});
});
Ext4 读写器
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的形式传到后台
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',
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);
Ext.Array.each(datas,function(model){
alert(model.get('name'));
});
var user = result.resultSet.records[0];
var orders = user.orders();
orders.each(function(order){
alert(order.get('name'))
});
})
});
xml读取
Ext.onReady(function(){
Ext.regModel("user",{
fields:[
{name:'name'},
{name:'id'}
],
proxy:{
type:'ajax',
url:'users.xml',
reader:{
type:'xml',
record:'user'//记录名/*<users>
<user>
<name>uspcat.com</name>
<id>00101</id>
</user>
</users>*/
}
}
});
var user = Ext.ModelManager.getModel('user');
user.load(1,{
success:function(model){
alert(model)
alert(model.get('id'))
}
})
});
读取后台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'))
}
})
});
/*后台JSP数据<%@page language="java" contentType="text/html" pageEncoding="UTF-8"%>
<%
response.getWriter().write("[['yunfengcheng',26]]");
%>*/
分享到:
相关推荐
ext学习笔记代码 ext学习笔记代码 ext学习笔记代码
这份"ext学习资料 20篇详细学习笔记 初学者ext学习的文档"是针对EXT初学者的一份宝贵资源,旨在帮助初学者快速入门EXT开发。 EXT的学习通常包括以下几个核心部分: 1. **EXT基础**:首先,你需要了解EXT的基本概念...
Ext JS4学习教程+笔记(一) Ext JS4学习教程+笔记(二)事件处理 Ext JS4学习教程+笔记(六)DataView面板 Ext JS4学习教程+笔记(七)树面板Tree Panel Ext JS4学习教程+笔记(三)Ajax请求 ...Ext学习网址
里面包括Ext学习.doc和Ext学习笔记.doc两份资料。来自网上。
在阅读《Gwt-ext学习笔记.pdf》这份资料时,应重点学习上述知识点,并通过实践项目来加深理解。同时,关注Gwt-ext的更新和社区资源,以便获取最新的API信息和最佳实践。不断练习和探索,你将能够熟练运用Gwt-ext构建...
【Yui_ext 学习笔记】 Yui_ext 是基于 Yahoo! UI Library (YUI) 的扩展,主要用于构建富客户端的 Web 应用程序。这篇学习笔记主要介绍了 Yui_ext 的基础知识,适合对 JavaScript 和 HTML DOM 有一定了解的初学者。 ...
这篇EXT学习笔记主要涵盖了EXTJS中面向对象编程的一些关键概念和实践,包括命名空间、类定义、构造函数、属性与方法的访问控制(私有和公有)、静态属性与方法以及继承机制。 1. **命名空间**:在EXTJS中,命名空间...
### Gwt-ext学习笔记之基础篇 #### 一、安装CypalStudio工具 为了能够开始Gwt-ext的学习之旅,首先需要确保开发环境已经搭建好。CypalStudio是一款非常实用的工具,它能帮助开发者更高效地进行GWT项目的开发。 1....
EXT 4.0 是一款流行的JavaScript库,专门用于构建富...EXT 4.0提供了丰富的API文档,允许开发者深入学习并自定义更多功能,如分页、筛选、编辑等。对于初学者来说,了解和实践这些基本概念是掌握EXT 4.0的第一步。
Ext 手册+学习笔记+资料+实例 Ext 手册+学习笔记+资料+实例 Ext 手册+学习笔记+资料+实例
以下是对EXT学习笔记中涉及的关键知识点的详细说明: 1. **EXT Form**: EXT中的表单组件是构建用户交互界面的重要部分。它们允许用户输入数据并将其提交到服务器。EXT Form支持多种字段类型,如文本框、选择框、...
在EXT学习笔记中,"What_is_that_Scope_all_about2.htm"可能涉及的是JavaScript作用域和EXT中的scope概念,这对于理解和调试EXT应用中的事件处理和回调函数至关重要。"JsonTool.htm"可能介绍了EXT如何与JSON数据进行...
### Ext2.0学习笔记:深入理解Ajax与Ext框架 #### Ajax:实现异步无刷新数据交换的关键技术 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它利用了...
在GWT-Ext的学习过程中,首先你需要了解如何定义和实现远程服务。这是GWT的一个核心特性,它允许客户端和服务器之间的安全通信。在GWT中,远程服务调用通常涉及以下几部分: 1. **远程服务接口(Remote Service ...