`
雪馨25
  • 浏览: 130056 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

【初学EXT】基础知识

    博客分类:
  • EXT
阅读更多

学习背景:三个月之前我对EXT还处于一无所知的状态,迫于新工作的要求,和自我提升的压力,我不得不四处搜罗面着学习EXT,从最简单的helloword学起
       知识背景:我有java基础,使用JS进行过web开发
       我坚信:没有学不会,只有不会学

         开篇


首先要知其然,然后再知其所以然
最好的老师莫过于官网,没有人会比开发公司更了解自己的产品

官网地址: 中文:  http://extjs.org.cn/       英文:http://www.sencha.com/products/extjs

 

开始学习啦:

按照我惯常的学习思路是要先在官网找到quik start 然后照猫画虎开始学习的,但是这一次有些与众不同,官网的大体浏览让我有些眼花缭乱无从下手,为了尽快入门,我的学习步骤调整如下:
1.官网例子学习helloworld
2.简单教程学习语法
3.各个击破
   控件
   布局
   监听

一、helloworld

地址:ExtJs"入门"
使用版本:ext-3.4.0
建立基本项目:
项目目录:

 

HelloWerld.html

 

 

 

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  4. <title>Hello World</title>  
  5. <link rel="stylesheet" type="text/css"  
  6.     href="EXT/resources/css/ext-all.css" />  
  7. <script type="text/javascript" src="EXT/ext-base.js"></script>  
  8. <script type="text/javascript" src="EXT/ext-all.js"></script>  
  9. <script type="text/javascript">  
  10.     Ext.onReady(function() {  
  11.         alert('Hello World!');  
  12.     });  
  13. </script>  
  14. </head>  
  15. <body>  
  16. </body>  
  17. </html>  

web.xml

 

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  3.   <display-name>QuickStartExt</display-name>  
  4.   <welcome-file-list>  
  5.     <welcome-file>HelloWorld.html</welcome-file>  
  6.   </welcome-file-list>  
  7. </web-app>  

效果展示:

 

之后测试代码如不单独指出,则是直接替换掉alert('Hello World!'); 进行效果测试

 

二、语法学习(要基本理解,动手实践)

 

教材:轻松搞定EXTJS  (在我的下载资源中可以进行下载阅读)

 

先通读重要章节,基本目标学会语法

 

命名空间(namespace)

 

语法:Ext.namespace(“命名空间”)
示例:Ext.namespace("com.aptech");

 

通常基于命名空间创建新类,按照java 的设计思想,会有封装、继承和多态。Extjs 也不例外,而且Extjs 为OOP 做了很多基础工作,使用起来非常模式化。一个类至少应该有private 和public 成员,且可以派生出子类,并能重写父类的方法。

 

例:

 

[javascript] view plaincopyprint?
  1. Ext.namespace("com.aptech");  
  2. com.aptech.First = function(){  
  3.    //私有成员  
  4.     var kiss = "中华人民共和国";  
  5.    //私有方法  
  6.    //公有方法  
  7.     return {  
  8.         //公有成员  
  9.         init: function(){  
  10.              alert("init");  
  11.              alert(kiss);  
  12.         },  
  13.         //公有成员  
  14.         method: function(){  
  15.             alert("method");  
  16.         }  
  17.     };  
  18. };  

注:First 位于com.aptech 命名空间中,有一个私有成员kiss,并且向外部暴露了两个方法init()和method()。其实,在function和return之间定义的成员全总是private,而ruturn内部定义的成员全部是public
模拟继承

[javascript] view plaincopyprint?
  1. //创建子类  
  2. com.aptech.Second = function(){  
  3. com.aptech.Second.superclass.constructor.apply(this);//调用父类构造方法  
  4. }  
  5. //com.aptech.Second子类继承自父类com.aptech.First  
  6. Ext.extend(com.aptech.Second, com.aptech.First, {  
  7. //新方法  
  8. fun: function(i){  
  9. return i * i * i;  
  10. },  
  11. //重写的方法  
  12. method: function(){  
  13. alert("Second::method")  
  14. }  
  15. });  
  16. //测试  
  17. var second = new com.aptech.Second();  
  18. alert(second.fun(5));  
  19. second.method();  

这个我没有太明白,不过不影响我继续学习,暂作记录

配置(config)选项

 

[javascript] view plaincopyprint?
  1. Student = function(name, sex){  
  2. this.name = name;  
  3. this.sex = sex;  
  4. }  
  5. //测试  
  6. var student = new Student("李赞红""男");  
  7. alert("姓名:" + student.name + "\r\n性别:" + student.sex);  

apply()---config

[javascript] view plaincopyprint?
  1. Student = function(config){  
  2. Ext.apply(this, config);  
  3. }  
  4. //测试  
  5. var student = new Student({name: "李赞红", sex: "男"});  
  6. alert("姓名:" + student.name + "\r\n性别:" + student.sex);  

注:Ext定义了一个名叫apply()的方法,作用是将第二个参数的成员赋给第一个参数。

Ext.apply()和Ext.applyIf()

 

[javascript] view plaincopyprint?
  1. Student1 = function(config){  
  2. this.name = "张海军";  
  3. this.sex = "女";  
  4. Ext.apply(this, config);  
  5. }  
  6.   
  7. Student2 = function(config){  
  8. this.name = "张海军";  
  9. this.sex = "女";  
  10. Ext.applyIf(this, config);  
  11. }  
  12. var student1 = new Student1({name: "李赞红", sex: "男", birthday: new Date()});  
  13. alert("姓名1:" + student1.name + "\r\n 性别1:" + student1.sex + "\r\n 生日1:" +student1.birthday);  
  14.   
  15. var student2 = new Student2({name: "李赞红", sex: "男", birthday: new Date()});  
  16. alert("姓名2:" + student2.name + "\r\n 性别2:" + student2.sex + "\r\n 生日2:" +student2.birthday);  

 

结果:

 

姓名1:李赞红
性别1:男
生日1:Mon Apr 22 2013 11:32:14 GMT+0800

 

姓名2:张海军
性别2:女
生日2:Mon Apr 22 2013 11:33:14 GMT+0800

 

三、控件(和java有类似,理解基础上多动手,有印象即可,千万不要死记硬背)

 

简单的消息框

 

提示框的语法:
Ext.MessageBox. alert ( String title, String msg, Function fn, Object scope );
参数定义如下:
1、title:标题
2、msg:提示内容
3、fn:提示框关闭后自动调用的回调函数
4、scope:作用域,用于指定this指向哪里,一般不用管他,特殊情况下有用

 

例:

 

 

Ext.MessageBox.alert("提示框", "这是一个提示框", function(){
            alert("提示框关闭了");
            })

Ext.MessageBox.prompt("输入框", "请输入您的姓名:", function(btn, txt){
                Ext.MessageBox.alert("结果", "您点击了" + btn + "按钮,<br>输入的内容为" + txt);

});
Ext.MessageBox.prompt("输入框", "请输入您的姓名:", function(btn, txt){
            Ext.MessageBox.alert("结果", "您点击了" + btn + "按钮,<br>输入的内容为" +txt);
            }, this, 100);

 

    Ext.MessageBox.confirm("确认", "请点击下面的按钮作出选择", function(btn){
            Ext.MessageBox.alert("您单击的按钮是:" + btn);
            });

 

Ext.onReady 事件

 

[javascript] view plaincopyprint?
  1. Ext.onReady(function(){  
  2.     Ext.get("btn").on("click"function(){  
  3.         Ext.MessageBox.alert("点击""我被点击了,非常高兴");  
  4.     });  
  5. });  

注:

页面加载完成后,Ext.onReady 事件被触发,基本上,除了类封装,与页面相关的操作都会写在该事件中。

Ext.get ( Mixed el):根据HTML标签的id属性获取Ext.Element 对象

on(String eventName, Function fn):为Ext.Element 对象定义一个事件,eventName是事件名称,和传统的事件名称相比不以“on”开头,fn为事件处理函数。从这里可以延伸开去,也可以是 “change”、“keypress”等。

 

EXT组件(暂时罗列,后期布局不用到处找)

组件有三种类型:基本组件、工具栏组件、表单组件。

基本组件

 

 

xtype class 说明
box Ext.BoxComponent 具有边框属性的组件
button Ext.Button 按钮
colorpalette Ext.ColorPalette 调色板
component Ext.Component 组件
container Ext.Container 容器
cycle Ext.CycleButton 圆角按钮
dataview Ext.DataView 数据显示视图
datepicker Ext.DatePicker 日期选择面板
editor Ext.Editor 编辑器
editorgrid Ext.grid.EditorGridPanel 可编辑的表格
grid Ext.grid.GridPanel 不可编辑的表格
paging Ext.PagingToolbar 分页组件
panel Ext.Panel 面板
progress Ext.ProgressBar 进度条
splitbutton Ext.SplitButton 可分裂的按钮
tabpanel Ext.TabPanel 选项面板
treepanel Ext.tree.TreePanel
viewport Ext.ViewPort 视图
window Ext.Window 窗口

工具栏组件

 

xtype class 说明
toolbar Ext.Toolbar 工具栏
tbbutton Ext.Toolbar.Button 按钮
tbfill Ext.Toolbar.Fill 文件
tbitem Ext.Toolbar.Item 工具条项目
tbseparator Ext.Toolbar.Separator 工具栏分隔符
tbspacer Ext.Toolbar.Spacer 工具栏空白
tbsplit Ext.Toolbar.SplitButton 工具栏分隔按钮
tbtext Ext.Toolbar.TextItem 工具栏文本项

表单组件

xtype class 说明
form Ext.FormPanel Form面板
checkbox Ext.form.Checkbox 复选框
combo Ext.form.ComboBox 下拉列表框
datefield Ext.form.DateField 日期选择器
field Ext.form.Field 表单字段
fieldset Ext.form.FieldSet 字段分组
hidden Ext.form.Hidden 隐藏表单域
htmleditor Ext.form.HtmlEditor 在线HTML编辑器
numberfield Ext.form.NumberField 数字编辑器
radio Ext.form.Radio 单选按钮
textarea Ext.form.TextArea 区域文本框

 

以下为阅读教程过程中摘录的几个控件:

 

日期选择器Ext.DatePicker

 

[javascript] view plaincopyprint?
  1. <span style="font-size:12px;">var dp = new Ext.DatePicker({  
  2.             renderTo: Ext.getBody(),  
  3.             minDate: Date.parseDate("2009-1-1""Y-m-d"),  
  4.             maxDate: Date.parseDate("2999-12-30""Y-m-d"),  
  5.             value: Date.parseDate("2013-4-22""Y-m-d"),  
  6.             handler: function(){  
  7.             Ext.MessageBox.alert("日期", Ext.util.Format.date(this.getValue(), 'Y-m-d'));  
  8.             }  
  9.             });</span>  

下拉列表

[javascript] view plaincopyprint?
  1. var cities = [ [ 1, "长沙市" ], [ 2, "株洲市" ], [ 3, "湘潭市" ],  
  2.                     [ 4, "邵阳市" ] ];  
  3.             var proxy = new Ext.data.MemoryProxy(cities);  
  4.             var City = Ext.data.Record.create([ {  
  5.                 name : "cid",  
  6.                 type : "int",  
  7.                 mapping : 0  
  8.             }, {  
  9.                 name : "cname",  
  10.                 type : "string",  
  11.                 mapping : 1  
  12.             } ]);  
  13.             var reader = new Ext.data.ArrayReader({}, City);  
  14.               
  15.             var store = new Ext.data.Store({  
  16.                 proxy : proxy,  
  17.                 reader : reader,  
  18.                 autoLoad : true  
  19.             //即时加载数据  
  20.             });  
  21.             //store.load();  
  22.             var combobox = new Ext.form.ComboBox({  
  23.                 renderTo : Ext.getBody(),  
  24.                 triggerAction : "all",  
  25.                 store : store,  
  26.                 displayField : "cname",  
  27.                 valueField : "cid",  
  28.                 mode : "local",  
  29.                 emptyText : "请选择湖南城市"  
  30.             });  
  31.             var btn = new Ext.Button({  
  32.                 text : "列表框的值",  
  33.                 renderTo : Ext.getBody(),  
  34.                 handler : function() {  
  35.                     Ext.Msg.alert("值""实际值:" + combobox.getValue()  
  36.                             + ";显示值:" + combobox.getRawValue());  
  37.                 }  
  38.             });  

1
9
分享到:
评论

相关推荐

    ext学习资料 20篇详细学习笔记 初学者ext学习的文档

    1. **EXT基础**:首先,你需要了解EXT的基本概念,如组件(Components)、容器(Containers)和布局(Layouts)。EXT中的每个可视元素都是一个组件,而容器则用于组织和管理这些组件。布局定义了容器内组件的排列...

    ExtJSP基础知识及其API

    这篇文档集合详细介绍了ExtJSP的基础知识以及相关的API,对于初学者来说是一份宝贵的资料。 首先,我们要理解ExtJS的核心概念。ExtJS是一个开源的JavaScript库,它提供了丰富的UI组件,如表格、树形结构、表单、...

    ext初学好资料

    “ExtJS使用简明教程.chm”是一个Windows帮助文档,通常包含了一系列关于EXT JS的基础知识、核心概念和实用技巧。这种格式的文档往往结构清晰,易于查阅。它可能会涵盖EXT JS的基本组件如表格(Grid)、面板(Panel...

    最新入门级Ext2.0基础教程

    #### 构建文件系统的基础知识 在深入学习Ext2之前,首先需要了解一些构建文件系统的基本概念: 1. **磁盘分区**:为了更好地组织和管理存储设备上的数据,通常会将磁盘划分为若干个逻辑区域,即分区。 2. **文件...

    ext教程、ext核心API 、ext中文教程

    在"EXT教程"中,你将学习到EXT的基础知识,包括如何初始化应用、创建组件、布局管理以及如何与其他JavaScript库或后端服务集成。EXT的组件化思想是其核心,通过各种组件如表格(Grid)、面板(Panel)、窗口(Window...

    初学者必备资料-php-ext学习

    EXT的开发涉及到C语言基础、PHP内核理解以及编译原理等多方面知识。以下是一些关于PHP EXT的重要知识点: 1. **EXT的作用**:EXT扩展了PHP的功能,例如MySQLi和PDO用于数据库操作,GD库用于图像处理,JSON用于数据...

    ext_教程 (ext 相 关)

    手册详细介绍了EXT的基础概念、核心组件以及API使用方法。通过阅读这份文档,你可以了解EXT的基本架构,学习如何创建窗口、面板、表单等常用UI元素,以及如何管理布局、处理事件和数据绑定。 EXT学习文档是进一步...

    ext chm中文版

    综合这三份文档,开发者不仅可以全面了解EXT框架的基础知识,还能深入探索其高级特性和最佳实践。无论你是初次接触EXT,还是已经在EXT项目中有一定经验,这些资料都将极大地提升你的开发效率和应用质量。在实际开发...

    ext2.0官方文档(chm),Ext 2.0 简明教程,Ext2经典应用

    它可能包含实例代码和逐步指南,解释了基本的组件使用、事件监听、数据模型和数据存储的配置等基础知识。通过这个教程,初学者可以迅速掌握Ext 2.0的核心概念和实践技巧。 3. **EXT2.0中文教程.exe**: 这可能是一个...

    ext北风基础班讲义

    "ext北风基础班讲义"显然是一份针对EXTJS初学者的教学资料,特别是集中在第二讲——"信息提示框组件"上。 EXTJS 的组件体系是其核心特性之一,它提供了大量的预定义组件,如窗口(Window)、面板(Panel)、表格...

    Ext js 资源大全

    通过这些资源,你可以系统性地学习Ext JS,从基础知识到实践应用,逐步提升你的技能。Ext JS强大的组件模型和灵活的布局管理使得它可以构建复杂的业务应用,而其丰富的API和社区支持则确保了开发的便利性。学习并...

    EXTjs2.0 教程 包括《EXT2.0简明教程》和《ext基础教程》两份教材

    首先,EXT2.0的教程主要包括两个部分:《EXT2.0简明教程》和《ext基础教程》。这两份教材都是初学者了解EXTjs的重要资源。《EXT2.0简明教程》以CHM(Compiled Help Manual)格式提供,通常包含详尽的API文档和实例...

    gwtext学习三部曲

    第一部分:gwtext基础 在这一部分,你将学习到gwtext的基本概念和安装步骤。gwtext是如何与GWT整合,提供增强的组件库和布局管理器的。了解如何在项目中引入gwtext库,并创建第一个gwtext应用。此外,还会讲解gwtext...

    Ext开发文档(入门)

    2. **教程与示例**: 初学者可以从教程中学习EXT的基础知识,例如创建组件、布局管理、数据绑定等。示例代码提供了实践操作的机会,有助于加深理解。 3. **最佳实践**: 学习EXT的开发文档还能了解到最佳实践,如如何...

    ext+js.rar_ext_ext js_ext js java_java+ext

    综上所述,这个压缩包包含的资源全面覆盖了学习和使用Ext JS所需的基础到进阶知识,特别是对于初学者,可以从中了解到Ext JS的基本结构、组件、事件处理、数据绑定、布局管理等核心概念,以及如何在Java环境下集成和...

    ext整理 ext整理 ext整理

    1. `ext_core_manual_zhcn.pdf`:这是EXT核心手册的中文版,对于初学者来说是一份重要的参考资料,涵盖了EXT的基本概念和使用方法。 2. `61674451ExtJs.rar`、`430449659extjstest.rar`、`88198564Ext.rar`、`...

    Ext4.0使用指南

    这篇指南将着重于EXT4.0的基础知识,帮助初学者快速入门EXT JS的开发。 1. **EXTJS基础** - **获取EXTJS**:EXTJS的下载地址为http://extjs.org.cn/,你可以在这里找到EXTJS的发布包以及相关的支持资源。 - **...

    ext-4.0.7压缩包

    EXT 4.0.7 是一个历史悠久且广泛使用的前端JavaScript框架,主要被用于构建富互联网应用程序(Rich ...尽管如此,EXT 4.0.7 仍然是许多项目的基础,理解它的核心原理和特性对于理解EXT系列框架的演变历程至关重要。

Global site tag (gtag.js) - Google Analytics