Extjs 自学1

参考ExtJS实用开发指南

1 类库

ExtJS 由一系列的类库组成,一旦页面成功加载了 ExtJS 库后,我们就可以在页面中通
过 javascript 调用 ExtJS 的类及控件来实现需要的功能。ExtJS 的类库由以下几部分组成:

底层 API(core):其它控件都是建立在这些底层 api 的基础。

控件(widgets):控件是指可以直接在页面中创建的可视化组件,比如面板、选项板、
表格、树、窗口、菜单、工具栏、按钮等等,在我们的应用程序中可以直接通过应用这些控
件来实现友好、交互性强的应用程序的 UI。控件位于源代码目录的 widgets 子目录中,包含
如图 所示。

实用工具 Utils:Ext 提供了很多的实用工具,可以方便我们实现如数据内容格式化、 JSON
数据解码或反解码、对 Date、Array、发送 Ajax 请求、Cookie 管理、CSS 管理等扩展等功
能,如图所示:

2 组件

组件形成了 Ext 的控件, Ext 组件是由 Component 类定义,每一种组件都有
一个指定的 xtype 属性值,通过该值可以得到一个组件的类型或者是定义一个指定类型的组
件。
ExtJS 中的组件体系由下图所示

组件分三类:基本组件,工具栏组件,表单及元素组件

3. 如何使用组件

3.1 组件可以直接通过 new 关键子来创建:比如控件一个窗口,使用 new Ext.Window();创建一个表格则使用 new Ext.GridPanel()。

在构造函数中通过传递构造参数来创建组件:组件的构造函数中一般都可以包含一个对象,这个对象包含创建组件所需要的配置属性
及值,组件根据构造函数中的参数属性值来初始化组件。比如下面的例子

var obj={title:"hello",width:300,height:200,html:‘Hello,easyjf open source‘};
var panel=new Ext.Panel(obj); panel.render("hello");
<div id="hello">&nbsp;</div>

或者省去obj变量,直接这样:

var panel=new Ext.Panel({title:"hello",width:300,height:200,html:‘<h1>Hello,easyjf open source</h1>‘});
panel.render("hello");

注:render 方法后面的参数表示页面上的 div 元素 id,也可以直接在参数中通过 renderTo 参
数来省略手动谳用 render 方法,只需要在构造函数的参数中添加一个 renderTo 属性即可,
如下:

New Ext.Panel({renderTo:"hello",title:"hello",width:300,height:200,html:‘<h1>Hello,easyjf open source
</h1>‘});

3.2 对于容器中的子元素组件,都支持延迟加载的方式创建控件,此时可以直接通过在需要
父组件的构造函数中,通过给属性 items 传递数组方式实现构造。如下面的代码:

var panel=new Ext.TabPanel({width:300,height:200,items:[ {title:"面板1",height:30},{title:"面板
2",height:30},{title:"面板3",height:30}]});panel.render("hello");

这里包括三个面板。上面的代码与下面的代码等价:

var panel=new Ext.TabPanel({width:300,height:200,items:[new Ext.Panel( {title:"面板1",height:30}),new
Ext.Panel({title:"面板2",height:30}),new Ext.Panel({title:"面板3",height:30})]});panel.render("hello");
前者不但省略掉了 new Ext.Panel 这个构造函数,最重要前者只有在初始化 TabPanel 的
时候,才会创建子面板,而第二种方式则在程序一开始就会创建子面板。也就是说,前者实
现的延迟加载。
4 组件的配置属性
在 ExtJS 中,除了一些特殊的组件或类以外,所有的组件在初始化的时候都可以在构造
函数使用一个包含属性名称及值的对象,该对象中的信息也就是指组件的配置属性。

比如创建一个按钮:
var panel=new Ext.TabPanel({width:300,height:200,items:[new Ext.Panel( {title:"面板1",height:30}),new
Ext.Panel({title:"面板2",height:30}),new Ext.Panel({title:"面板3",height:30})]});panel.render("hello");

每一个组件除了继承基类中的配置属性以外,还会根据需要增加自己的配置属性,另外
子类中有的时候还会把父类的一些配置属性的含义及用途重新定 义。学习及使用 ExtJS,
其中最关键的是掌握 ExtJS 中的各个组件的配置属性及具体的含义,由于所有的组件都继承自 Ext.Component,因此在这里我们列出组件基类 Component 中
的配置属性简单介绍

5 Extjs Extjs Extjs 组件的事件处理

ExtJS 提供了一套强大的事件处理机制,通过这些事件处理机制来响应用户的动作、监
控控件状 态变化、 更新控 件视图 信息、 与服务 器进行 交互等 等。事 件统一 由
Ext.EventManager 对象管理,与浏览器 W3C 标准事件对象 Event 相对 应,Ext 封装了一个
Ext.EventObject 事件对象。支持事件处理的类(或接口)为 Ext.util.Observable,凡是继承该类
的组 件或类都支持往对象中添加事件处理及响应功能。
首先我们来看标准 html 中的事件处理,看下面的 html 代码:

Ext.get("btnAlert")得到一个与页面中按钮 btnAlert 关联的 Ext.Element 对象,可以直接调
用该对象上的 addListener 方法来给对象添加事件,同样实现前面的效果。在调用 addListener
方法的代码中,第一个参数表示事件名称,第二个参数表示事件处理器或整个响应函数。
ExtJS 支持事件队列,可以往对象的某一个事件中添加多个事件响应函数,看下面的代码:

5.1 addLinster 方法的另外一个简写形式是 on,由于调用了两次 addListener 方法,因此当点
击按钮的时候会弹出两次信息。

在使用 Ext 的事件时,我们一般是直接在控件上事件,每一个控件包含哪些事件 ,
在什么时候触发,触发时传递的参数等,在 ExtJS 项目的文档中 都有较为详细的说明。

5.2 组件的事件监听器可以直接在组件的配置属性中直接声明

时间: 2024-10-22 15:02:22

Extjs 自学1的相关文章

ExtJs自学教程(1):一切从API開始

题 记 该系列文章不側重全方位的去介绍ExtJs的使用,仅仅是側重于解决ExtJs问题的思考方法.写的人不用长篇大论,学的人则可以自立更生.l  学习的人仅仅要有一些CSS的javascript的基础知识而且对于英文不至于很蹩脚(以辅助词霸能看懂ExtJs的API为准),都可以參考本教程进行修行. <一> 一切从API開始 非常多学ExtJs的朋友在初学ExtJs的时候认为ExtJs的非常easy效果非常好,几行代码就把效果搞定了.可是用得多了,抱怨就開始了:ExtJs的布局怎么这么麻烦啊.那

ExtJs自学教程(1):一切从API开始

题 记 该系列文章不侧重全方位的去介绍ExtJs的使用,只是侧重于解决ExtJs问题的思考方法.写的人不用长篇大论,学的人则能够自立更生.l  学习的人只要有一些CSS的javascript的基础知识并且对于英文不至于非常蹩脚(以辅助词霸能看懂ExtJs的API为准),都可以参考本教程进行修行. <一> 一切从API开始 很多学ExtJs的朋友在初学ExtJs的时候觉得ExtJs的很简单效果很好,几行代码就把效果搞定了.但是用得多了,抱怨就开始 了:ExtJs的布局怎么这么麻烦啊.那些参数哪里

ExtJs自学教程(2):从DOM看EXTJS

<二> 从DOM看EXTJS 看标题可能有人会问,为啥好好的例子不看,得从DOM看起呢?答案是目标只为了一个:自运行结果把EXTJS看得更清楚点 首先,要看得靠点工具,带点放大镜什么吧?对.我们需要的工具就是Internet Explorer Developer Toolbar(简 称IEDevToolBar),它是一个IE查看DOM的结构的工具,还具备Style Trace,Debug style的功能,可谓功能强劲.我们在IE下分析DOM结构,靠的就是它了.当然,如果你选择FireFox,

ExtJs自学教程(1):从一切API开始

称号 记得 本系列文章是不是引进全套焦点ExtJs使用,您只需专注于解决ExtJs思考问题.人们不写长篇大论.别人能学会自立.l  有些人只要学会CSS的javascript基础知识并没有非常糟糕的英语(为了帮助金山词霸可以理解ExtJs的API任何).你可以参考本教程的实践. <一> 从一切API开始 学ExtJs的朋友在初学ExtJs的时候认为ExtJs的非常easy效果非常好.几行代码就把效果搞定了.可是用得多了,抱怨就開始了:ExtJs的布局怎么这么麻烦啊. 那些參数哪里来的呀?我想弄

Java自学序言

Java自学序言 亲爱的自己和各位读者朋友: 您们好! 这是作者本人自学Java编程开发的一系列文章,不具有一定的权威性,也算是自己一个人的学习笔记和总结,希望自己通过博客的形式将我自己的学习效率得到提高.如自学的稳重存在不足或错误的地方希望广大的博客朋友们多多指教.本人在此不胜感激! 学习Java是一件很痛苦的事儿,我自己要想不断的去挑战一下自己,把自己大学所学的Java知识能够巩固起来.不断的去改正自己开发中的不足之处.如何来学习Java?如何来更好的掌握Java开发语言?这些都是我们要不断

Extjs 4.2 设置buttontext为中文

可以在Ext.QuickTips.init();后加入如下代码: Ext.MessageBox.buttonText = { ok : "确定", cancel : "取消", yes : "是", no : "否" }; Extjs 4.2 设置buttontext为中文,布布扣,bubuko.com

MySQL数据库自学

MySQL数据库自学序言 亲爱的自己和各位读者朋友: 您们好! 这是作者本人自学Java编程开发的一系列文章,不具有一定的权威性,也算是自己一个人的学习笔记和总结,希望自己通过博客的形式将我自己的学习效率得到提高.如自学的稳重存在不足或错误的地方希望广大的博客朋友们多多指教.本人在此不胜感激!  天下数据库同属一家,可以说是兄弟关系.学习MySQL数据库可以说是一件很有趣的学习过程,就目前市场上对MySQL数据库的程序员需求量比较大.当你自己应聘一份工作的时候,MySQL数据库的技术技能是你必须

自学linux指令分析-ls

自学linux指令分析-ls 1·命令格式 ls [option] [directory-list] ls [参数][目录名] 2·命令参数    -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件. -A, –almost-all 列出除了 . 及 .. 以外的任何项目 –author 印出每个文件的作者 -b, –escape 把文件名中不可输出的字符用反斜杠加字符编号的形式列出. –block-size=大小块以指定<大小>的字节为单位 -B, –ignore-backu

【Android自学日记】关于Bitmap的理解和使用-不完整版

最近的Android自学刚好学习到异步线程的使用,对于开启异步线程加载网络图片中用到的Bitmap有点小蒙逼,这到底是个啥???所以我就自信的打开了百度!!以下就是我学习到的知识! 百度定义: 位图文件(Bitmap),扩展名可以是.bmp或者.dib.位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2.4.8.16.24和32位色彩.例如,一幅1024×768分辨率的32位真彩图片,其所占存储字节数为:1024×768×32/(8*1024)