- 浏览: 304259 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (167)
- <HTML and JavaScript and CSS> (6)
- 《Java2 基础知识及概念》 (3)
- Java2 Tools及其他 (11)
- EJB2.0 相关 (3)
- 英语学习 (4)
- Oracle Database Server (27)
- 计算机理论 (9)
- Java持久层框架 (2)
- 《Linux操作系统》 (24)
- 杂项技术 (4)
- Application Server (15)
- Windows操作系统 (7)
- Java中间件 (6)
- 娱乐生活 (4)
- 《Java设计模式》 (3)
- 《Interview Skill》 (1)
- 《Struts原理及应用》 (1)
- Workflow (2)
- 云计算 (3)
- 项目实践 (3)
- WEB相关技术 (10)
- JavaScript技巧及应用 (1)
最新评论
一、Web程序的革命
CGI
Java Applet
Flash
Web Start
AJAX
RIA 基于Flex、Sliverlight
二、学习ExtJs的前提
JavaScript
JSON (减肥的XML数据传送模式)
HTML DOM
(1) Component 组件
(2) Class 类
数据支持类(data),拖放支持类(dd),布局支持类(layout),本地状态存储支持类(state)cookie
实用工具类(util)对象变JSON
密封类,不能被扩展的类
原型类,扩展了JavaScript标准类库中的类
(3) Method
自己控制private,public
(4) Event
订阅与退订
(5) Config option
相当于构造参数
(6) Property属性
(7) Namespace
三、ExtJs的环境配置
下载: http://www.extjs.com/products/extjs/download.php
http://www.sencha.com/products/extjs/download/
目录结构
ext-all.js 和 ext-all-debug.js
ext-core.js 和 ext-core-debug.js
Adpater目录:使用其他优秀AJAX框架为ExtJs提供有力的技术支持,目前提供4种底层支持框架,ExtJs,JQuery, Prototype,YUI
Air目录:提供对Adobe公司的RIA技术的支持
Build目录:各个组件的部署版本
Docs目录:ExtJs组件API文档
Examples目录:ExtJs自带的示例
Source目录
Resources目录:资源文件
三、ExtJs的语言规范
1、命名空间
Ext.namespace("Ext.dojochina");
Java代码对照:
package Ext.dojochina;
Hello.js
Ext.namespace("Ext.mwang");
Ext.mwang.HelloWorld = Ext.emptyFn;
相当于: Ext.mwang.HelloWorld = new Function(){};
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>HelloWorld.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="./css/ext-all.css"> <script type="text/javascript" src="./scripts/ext-base.js"></script> <script type="text/javascript" src="./scripts/ext-all.js"></script> <script type="text/javascript" src="./scripts/Hello.js"></script> <script type="text/javascript"> new Ext.mwang.HelloWorld(); </script> </head> <body> This is my HTML page. <br> </body> </html>
2、类实例属性
Ext.apply(Ext.mwang.Person.prototype,{name:"大头"});
Java代码对照:
Person{
private String name = "大头";
put get方法;
}
3、类实例方法
Ext.namespace("Ext.mwang"); Ext.mwang.Person = Ext.emptyFn; Ext.apply(Ext.mwang.Person.prototype, { name : 'aaa', sex : 'nv', print : function() { alert(String.format("name:{0},sex:{1}", this.name, this.sex)); } });
var _person = new Ext.mwang.Person(); alert(_person.sex); _person.name = "小头"; alert(_person.name); _person.print();
4、类静态方法
Ext.mwang.Person.print = function(_name, _sex) { alert(String.format("name:{0},sex:{1}", _name, _sex)); }
Ext.mwang.Person.print("a","b");
5、类构造方法
Ext.mwang.Person = function(_cfg) { Ext.apply(this, _cfg); } Ext.mwang.Person.print = function(_name, _sex) { var _person = new Ext.mwang.Person({name:"A",sex:"B"}); _person.print(); }
5、类继承
Ext.namespace("Ext.mwang"); Ext.mwang.Person = function(_cfg) { Ext.apply(this, _cfg); } Ext.mwang.Person.print = function(_name, _sex) { var _person = new Ext.mwang.Person({name:"A",sex:"B"}); _person.print(); } Ext.apply(Ext.mwang.Person.prototype, { print : function() { alert(String.format("name:{0},sex:{1}", this.name, this.sex)); } }); Ext.mwang.Student = function(_cfg) { Ext.apply(this, _cfg); } Ext.extend(Ext.mwang.Student,Ext.mwang.Person,{job:"学生"});
6、类实例方法重写
7、命名空间别名
Dc = Ext.dojochina; 第一个字母大写,后面全小写
8、类别名
PN = Ext.dojochina.Person 全大写
9、事件对列
Ext.util.Observable
Ext.namespace("Ext.mwang"); Dc = Ext.mwang; Ext.mwang.Person = function(_cfg) { Ext.apply(this, _cfg); this.addEvents("namechanged", "sexchanged"); }; Ext.apply(Ext.mwang.Person.prototype, { name : "大头", sex : "男", print : function() { alert(this.name); } }); Ext.extend(Ext.mwang.Person, Ext.util.Observable, { setName : function(_name) { if (this.name != _name) { this.fireEvent("namechanged", this, this.name, _name); this.name = _name; } } });
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="./css/ext-all.css"> <script type="text/javascript" src="./scripts/ext-base.js"></script> <script type="text/javascript" src="./scripts/ext-all-debug.js"></script> <script type="text/javascript" src="./scripts/Hello.js"></script> <script type="text/javascript"> var _person = null; button_click = function() { _person.setName(prompt("Please input name:", "")); } Ext.onReady(function() { var txt_name1 = Ext.get("txt_name"); _person = new Ext.mwang.Person(); _person.on("namechanged", function(_person, _old, _new) { txt_name1.dom.value = _new; }); _person.on("namechanged", function(_person, _old, _new) { document.title = _new; }); }); </script> </head> <body> 姓名: <input type="text" id="txt_name" /> <br /> 性别: <input type="text" id="txt_name" /> <br /> <input type="button" value="input" onclick="button_click();" /> <br /> </body> </html>
GWT-ext: java程序员编写ExtJS提供可能
EXTTLD: 为JSP程序员的标签化部署提供可能
ExtSharp: 为C#的程序员编写ExtJS提供可能
四、ExtJs初级UI
1. Ext.button
Ext.onReady(function() { new Ext.Button( { renderTo : Ext.getBody(), text : "确定" }); });
属性:
renderTo:
text
minWidth
构造参数:
handler:
listeners:
text
方法:
setText
事件:
click
Ext.onReady(function() {
var _button = new Ext.Button( {
renderTo : Ext.getBody(),
text : "确定",
handler: function() {
alert("aaaaa");
}
});
_button.setText("Cacel");
});
Ext.onReady(function() {
new Ext.Button( {
renderTo : Ext.getBody(),
text : "确定",
listeners: {
"click": function(){
alert("aaaaa");
}}
});
});
_btn.on("click",function(){
alert("bbb");
});
2. Ext.form.TextField
fieldLable
getValue()
Ext.onReady(function() { new Ext.form.TextField( { renderTo : Ext.getBody(), fieldLable : "姓名" }); });
Ext.layout.FormLayout: 只有在此布局下才能正确显示lable,布局的宿主对象必须是Ext.Container或者Ext.Container的子类。在应用FormLayout 布局时只要在宿主对象的构造参数中指定layout:"form"即可。
Ext.getCmp(String _id): 得到id为_id的组件对象。
Ext.onReady(function() { var _panel = new Ext.Panel({ renderTo : Ext.getBody(), layout : "form", labelWidth : 50, listeners : { "render" : function(_panel) { _panel.add(new Ext.form.TextField({ id : "txt_name", fieldLabel : "姓名" })); } } }); Ext.getCmp("txt_name").setValue("bbb"); });
3. Ext.Panel
Ext.onReady(function() { var _panel = new Ext.Panel({ // renderTo : Ext.getBody(), title : "人员信息", frame : true, width : 300, heigth : 200 }); _panel.addButton({ text : "确定" }); _panel.addButton(new Ext.Button({ text : "取消", minWidth : 100 })); _panel.render(Ext.getBody()); });
addButton : 设计时
frame: true 四角变圆角,背景颜色
两个addButton的区别,第一个是form管理,第二个是自己管理。
renderTo render() 添加到容器里面
applyTo applyToMarkup() 叠加到容器里面
_panel.add({xtype : "textfield",fieldLable : "姓名" });
xtype 机制
Ext.onReady(function() { var _panel = new Ext.Panel({ title : "登录", frame : true, width : 260, height : 130, layout : "form", labelWidth : 45 }); _panel.add({ xtype : "textfield", id : "txt_account", fieldLabel : "帐号", width : 180 }); _panel.add({ xtype : "textfield", id : "txt_password", fieldLabel : "密码", width : 180 }); _panel.addButton({ text : "确定" }); _panel.addButton({ text : "取消" }); // _panel.applyToMarkup("a2"); _panel.render("a2"); // _panel.applyToMarkup(); });
DIV页面居中
<div align="center"> <div id="a1" style="height: 200; "> aaa </div> <div id="a2" style="top: 300; width: 300; height: 300; background-color: green;"> aaa </div> <div id="a3" style="height: 200; "> aaa </div> </div>
Ext.onReady(function() { var _panel = new Ext.Panel({ title : "登录", frame : true, width : 260, height : 130, layout : "form", labelWidth : 45, defaults:{xtype:"textfield",width:180}, items:[{fieldLabel : "帐号"},{fieldLabel : "密码"}], buttons:[{text:"确定"},{text : "取消"}] }); // _panel.applyToMarkup("a2"); _panel.render("a2"); // _panel.applyToMarkup(); });
4. Ext.Window
title: 窗体名称
minimizable: 是否显示最小化
maximizable: 是否显示最大化
closable: 销毁对象
show 方法
hide
hide事件
show
close
Ext.onReady(function() { var _window = new Ext.Window({ title : "登录", frame : true, width : 260, height : 130, layout : "form", plain : true, resizable : false, bodyStyle : "padding:3px", labelWidth : 45, minimizable : false, maximizable : false, closable : true, closeAction : "hide", buttonAlign : "left", defaults : { xtype : "textfield", width : 180 }, items : [{ fieldLabel : "帐号" }, { fieldLabel : "密码" }], buttons : [{ text : "确定" }, { text : "取消", handler : function() { _window.hide(); } }], listeners : { "show" : function() { alert("aaaaa"); }, "close" : function() { alert("closed!"); } } }); _window.show(); });
发表评论
文章已被作者锁定,不允许评论。
-
<Liferay6初始化安装配置>
2011-09-21 09:35 20361 初始化安装Liferay Portal 是市场上适应应 ... -
Liferay in Action学习笔记
2011-09-15 14:21 3323一、Liferay is a different portal ... -
Liferay portal基础知识
2011-09-14 10:54 1316一、优点 (1)以应用 ... -
<JavaScript类的继承>
2011-08-21 17:30 8941.利用共享prototype实现继承在JavaScript中 ... -
<用JAVASCRIPT实现静态对象、静态方法和静态属性>
2011-08-21 17:20 789Javascript语言的面向对象特征很弱,其他面向对象语言在 ... -
<JavaScript类定义的几种方式>
2011-08-21 16:59 612先写一个函数,下面几个方式会用到 function s ... -
Javascript及JQuery视频教学
2011-08-15 07:09 1149第0讲 内容概述 Javascrip ... -
ExtJs从入门到精通(2)
2011-08-04 12:29 8711. Ext.Ajax (extends Connectio ... -
JSP解决乱码问题的Filter
2011-07-14 13:53 839<?xml version="1.0" ...
相关推荐
extjs入门到精通,实例有简单到复杂,还有综合实力,下载即可运行,环境也是配好的,希望对你有帮助!
Ext 从入门到精通 很好的学习资料,内容,丰富诙谐幽默。 正在想学习Ext的童靴们赶快下吧~~
ExtJS入门教程(超级详细).pdf
在ExtJS入门教程中,首先需要掌握的是如何获取ExtJS库文件。用户可以通过ExtJS官方网站提供的下载链接获取到最新的ExtJS库文件,下载的文件是一个压缩包,解压后可以看到包含的文件和目录。其中主要的文件包括...
《EXT从入门到精通》是针对想要深入了解和掌握EXTJS框架的开发者们设计的一本全面指南。本书旨在通过详尽的讲解和丰富的实践案例,帮助读者从基础开始,逐步建立起对EXTJS框架的深入理解与应用能力。 ### EXTJS概述...
学习ExtJS需要遵循从入门到精通的过程,即先从基础组件开始学习,逐步深入了解布局管理、数据处理、事件管理、模块化开发等高级主题。 ExtJS是独立于后端技术的前端框架。这意味着它不依赖于任何特定的服务器端语言...
extjs技术,从入门到精通,详细教程。
非常好的EXtJS4.0视频教程及源码学习,适用于JAVA和EXTJS初学者
1. **组件化**:EXT JS使用组件模型,允许开发者通过组合各种UI组件来构建复杂的页面结构,如表格、面板、菜单、窗口、表单等。 2. **数据绑定**:EXT JS支持数据绑定,可以将数据模型与UI组件关联,实现数据的实时...
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...
由于富客户端技术进一步扩展浏览器功能,使之提供更加...最新版本特性,了解并掌握extjs4语法及应用,了解基于ExtJs4的最流行的富客户端框架及熟悉掌握其高级特性,并结合SSH框架与DWR实现富户端商业应用的全部开发过程
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...
从入门到精通Extjs教程。Extjs专家力作,示例丰富,理论实践并重。ajax中国,dojo中国,开源中国社区一起力荐。
《ExtJs中文教程》则提供了一条清晰的学习路径,让你逐步了解并精通ExtJs。教程可能包括了基础概念、组件库的详细介绍、数据管理、事件处理、布局管理等方面的内容。中文教程的优势在于,对于中文使用者来说,语言...
3. **EXTJS框架**:压缩包中的"ExtJS.chm"和"ExtJS.chw"可能包含了EXTJS框架的官方文档,EXTJS是EXT技术的一个重要实现,它是一个完整的前端开发框架,包含了从布局管理、组件系统到数据交换等一系列功能。EXTJS的...
初学者可以从使用记事本来开始学习 Java,这样有助于更好地理解 Java 技术的基本原理,并培养良好的编程习惯。当对 Java 有一定的了解后,可以考虑使用 Eclipse 或 NetBeans 等更为先进的开发工具。 ### Java 语言...
将Nexus的WAR文件部署到Web容器中,启动容器后同样可以通过浏览器访问。 配置Nexus代理Maven中央仓库,需要在已有的Maven Central仓库的配置中修改Remote Storage Location,确保其指向正确的远程地址。同时,可以...
这个教程集合包含多个资源,旨在帮助用户从入门到精通地学习ExtJS。以下是对这些文档的详细解析: 1. **《ExtJS深入浅出.doc》**:这本书可能是针对初学者和有一定基础的开发者,通过深入浅出的方式讲解ExtJS的基础...