首页>参考读物>计算机科学与技术>软件与程序设计

Ext JS 权威指南
作者 : 黄灯桥 著
出版日期 : 2012-06-18
ISBN : 978-7-111-38063-4
定价 : 119.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 1004
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书是Ext JS领域的集大成之作,由资深Ext JS专家撰写,技术社区联袂推荐,权威性毋庸置疑。
本书有两大特点:第一,授人以鱼,根据Ext JS的构成体系全面系统地讲解了其开发方法与技巧,每个知识点都辅之以翔实的案例,同时包含大量最佳实践,适合系统学习和开发参考;第二,授人以渔,宏观上对Ext JS的整体架构进行了分析,微观上则通过源代码深刻揭示了Ext JS的工作机制与原理,对于想了解Ext JS工作原理和在开发中碰到疑难问题的读者尤为有帮助。
全书一共22章:第1章简要介绍了学习Ext JS必备的基础知识、JSON、Ext JS 4的新特性,以及其开发工具的获取、安装与配置;第2章介绍了Ext JS 4的获取、Ext JS库的配置与使用、语法、本地化,以及一个经典的入门示例;第3章详细讲解了调试的工具及技巧,这是本书的重要内容,希望所有Web开发者都能掌握;第4章全面介绍了Ext JS的基础架构;第5~9章分别讲解了Ext JS的事件及其应用、选择器与DOM操作、数据交互、模板与组件、容器、面板、布局与视图;第10章和第11章分别详细介绍了重构后的Gird和与Gird同源的树;第12~16章分别讲解了表单、窗口、按钮、菜单、工具条、图形、图表,以及其他组件和实用功能;第17~19章分别介绍了Ext.Direct、动画功能和拖放功能;第20~22章则分别讲解了扩展与插件、主题开发、MVC应用的架构。

图书特色

Ext JS权威指南
黄灯桥  著
封面
Ext JS领域的集大成之作,全面系统地讲解Ext JS的开发方法与技巧,包含大量案例和最佳实践,系统学习和开发参考必备
通过源代码深刻揭示Ext JS重要知识点和功能模块的工作机制与原理,有助于读者深入掌握Ext JS并解决开发中的疑难问题

封底:
相比之前的版本,Ext JS 4发生了革命性的变化。它在创建之初就以“最全面现代化”为目标,采用了改进的架构并加入了许多新的特性,从而使开发者能以更低的成本开发出更加可靠的下一代Web应用。Ext JS 4 几乎对框架的每个部分都进行了升级和优化,力图充分利用现今各主流浏览器的能力,同时它也与之前的版本兼容。本书是目前最全面和最系统化地讲解Ext JS 4的著作,包含Ext JS 4的所有功能模块以及开发方法和技巧,是一本实实在在的“权威指南”,适合系统学习和开发参考,强烈推荐。
—— 51CTO  中国领先的IT技术网站
上将军是Ext JS领域当之无愧的专家,他在Ext JS领域的造诣之深,令人兴叹。难能可贵的是,他这些年来一直专注于Ext JS的研究和推广,紧跟Ext JS官方团队的步伐,撰写了大量关于Ext JS的最新资讯和技术文章,深受社区欢迎。同时,他还撰写了两本Ext JS的专著,广获读者好评。本书是他的第三本Ext JS著作,也是国内第一本真正全面针对Ext JS 4的专著,它不仅从应用的角度全面讲解了Ext JS的使用,而且还从源代码的角度深入分析了Ext JS的工作原理,可谓广度和深度兼备。
—— Ext JS中国用户组 
Ext JS 4是Web开发者的福音,本书则是希望系统学习并深入了解Ext JS 4的读者的最佳选择!目前市面上出版了很多关于Ext JS的书,但是真正基于Ext JS 4的著作仅此一本。大家都知道,Ext JS 4较之以前的版本发生了很大的变化。更为重要的是,目前市面上的同类著作要么只讲Ext JS如何使用,要么只是枯燥地去分析源代码,本书则是以教会读者“更好地使用Ext JS”为核心目的,以讲解Ext JS的开发方法和技巧为主, 同时还对一些重要的功能模块和知识点的原理进行了源代码分析,不仅能让读者知道如何做,而且还能知道为什么要这样做,最终实现做得更好的目的。还要重点提到的是,本书为了照顾不同读者的需要, 服务器端的案例同时给出了Java和C#两个版本,作者之用心可见一斑!
—— Ext JS中文社区 

前:
Web应用开发正随着HTML 5与CSS 3标准的不断成熟而进入一个新的时代,JavaScript框架之间的竞争也随着移动应用的迅速普及而愈演愈  烈。经过一段时间的洗礼后,jQuery UI和Ext JS因各自独特的优势而逐渐成为Web应用开发框架的领导者。jQuery UI因其轻量级、灵活的特点而受到追捧,Ext JS则以面向对象的模式设计、组件丰富、集成度高等优点而备受企业青睐。
Ext JS 4在Ext JS 3的基础上进行了重大革新,是一个里程碑式版本。Ext JS 4经过重新架构以 后,更加符合面向对象的设计,更易于扩展,也更能满足企业应用不断扩展的要求。尤其是加入了图形功能以后,不仅很好地解决了图表的问题,而且还使该框架可以拓展到图形领域。随着HTML 5画布功能的实现,Ext JS框架会变得更强大。
在项目中使用Ext JS不难,难的是如何用好 它。要用好它,不仅要对它的架构有一个整体的了解,如数据如何处理、UI是如何与数据结合的等,如果不了解这些,就会发生在UI中找数据的笑话;而且还要熟悉调试工具的使用,不然就会对错误束手无策。因为本书的出发点就是教读者“如何用好Ext JS”,所以不仅详细而全面地讲解了Ext JS框架的使用,而且还通过源代码深入分析了其运行机制与原理。此外,本书还对Firebug使用方法和原理进行了深入的讲解,目的是让读者在掌握Ext JS使用的基础上,能利用Firebug去深入研究Ext JS的原理并对开发中遇到的各种bug进行调试。

作者简介
黄灯桥  (网名:上将军) 资深Web技术专家,拥有10余年工作经验,一直致力于Web开发框架的研究,近年来醉心于Ext JS框架的开发与推广,撰写了大量与Ext JS开发相关的教程,是社区公认的先锋和布道者,与Sencha 和Ext JS的官方开发团队有十分紧密的联系。其经典著作有《JavaScript凌厉开发——Ext详解与实践》和《Ext JS高级程序设计》。
他不仅精通VB、Delphi和C++等传统的面向对象技术,而且还擅长ASP.NET、PHP和Java等Web开发技术。目前重点关注Sencha Touch、jQuery UI、HTML 5、CSS 3以及NoSQL数据库等前沿技术。活跃于CSDN(博客专家)等各大技术社区,在社区内知名度极高,深受网友欢迎。
作者博客:http://blog.csdn.net/tianxiaode
本书微群:http://q.weibo.com/943166


《Sencha Touch权威指南》2012.8出版
《jQuery Mobile实战》2012.8出版

图书前言

近一段时间,随着HTML 5和CSS 3的逐步升温,浏览器大战进行得如火如荼,而开发人员最关心的是JavaScript框架在HTML 5和CSS 3的大潮下会走向何方。
  随着iPhone 4S的出现,手机大战也进行得如火如荼。目前的情况是,不但手机系统进行着混战,手机应用的框架也在进行混战。
  应该说Ext公司在这方面触觉是很敏锐的,它选择合并,将公司更改为Sencha,并通过Sencha加入到手机框架大战中。本以为Ext JS会止步于Ext JS 3.3,想不到Sencha在手机框架中站稳脚跟后,2011年又推出了Ext JS 4.0,对这个颇受欢迎的框架进行了更多的革新,加入了很多HTML 5和CSS 3的元素。
  在过渡到HTML 5和CSS 3的时期,Ext JS框架能继续发展,对开发人员来说是天大的喜事。因为在HTML 5和CSS 3还没完全一统江湖的时候,开发人员要继续使用目前的开发工具进行开发。而Ext JS 3暴露出来的问题也需要不断修正和更新,这正是Ext JS 4需要解决的。
  很不错,Ext JS 4终于来了。
为什么写这本书
  从Ext JS 2.0开始,尤其是Ext JS 3.0推出后,使用Ext JS的开发人员越来越多。而随着Ext JS 4的推出,估计会掀起一个新的技术学习热潮。Ext JS 4进行了架构的调整,做了一系列的规范化,例如类名的规范化、UI组件的渲染的规范化等,还重构了不少UI组件,这些对熟悉Ext JS 3的开发人员来说都要重新学习。对于新入门的读者,更是急需Ext JS 4方面的书籍来指导。因此,笔者决定写一本介绍Ext JS 4的书。
  目前市面上介绍Ext JS的图书基本都是以应用为主,深入介绍Ext JS的很少,这也是笔者写本书的一个缘由。在本书中,不但介绍了如何使用Ext JS 4,还深入Ext JS 4的源代码,通过抽丝剥茧的分析,让大家对Ext JS 4有更深入的理解,从而使开发人员在使用Ext JS 4时少走弯路。
  本书除了深入介绍Ext JS 4外,还有一个主要目的,就是希望大家能掌握Firebug这个工具,学会如何使用Firebug去分析JavaScript代码的运行过程,提高分析能力及调试水平,减少bug的发生和调试时间。
本书的特色
  笔者在Ext JS的学习和交流中发现,很多使用者对Ext JS的整体架构不太熟悉,造成对应用中的一些问题混淆不清,从而导致应用中出现或多或少的错误。例如,对Ext JS的三层架构不熟悉,造成在UI中找数据的问题。而目前各类Ext JS 书籍中很少提及这些方面,所以,针对使用者普遍存在的问题和容易混淆的地方,本书通过原理讲解和示例讲述“为什么是这样的”以及“为什么要这样做”。
  本书的主要特色就是通过源代码的讲解,让读者明白Ext JS的类是如何运作的,然后通过运行原理及实战来学习如何使用这些类,并循序渐进地学习Ext JS。
本书面向的读者
  本书介绍了Ext JS 4中的几乎所有功能,并对其源代码进行了分析和讲解。因此,读者不但可以学习如何使用Ext JS 4,还可以通过阅读源代码加深对Ext JS的理解,并从源代码中吸取别人的经验,提高自己的脚本编写能力。只要读者具备Web编程的基础,阅读本书的内容就不会有什么问题。
  如果读者是新手,就应根据第1章关于学习Ext JS必需的基础知识一节的建议,去阅读相应的书籍,掌握Web编程的基础知识,尤其是JavaScript、HTML和CSS的相关知识。当然,能了解面向对象、三层架构等知识对阅读本书是相当有帮助的。
  如果读者对Ext JS有一定基础,则可通过本书深入了解Ext JS的运行原理,加深对Ext JS 的认识,尤其是对Ext JS新的开发框架的认识。
  本书示例中的服务器端代码,使用C#和Java两种语言编写,所以只要熟悉这两种语言中的一种,对阅读本书都会有很大帮助。不过,Ext JS是一个基于客户端的JavaScript框架,对于使用何种服务器端开发语言没有要求,因此即使是不懂C#和Java语言的读者,阅读本书也不会有太多困难。
使用本书的要求
  在使用本书的示例时,最好安装Firefox 4.0以上版本,并且安装Firebug 扩展。
  要运行本书中带有服务器端代码的示例,需要:
  IIS或Tomcat 7.0
  .Net :Visual Studio 2010
  Java:Eclipse Helios Service Release 2或Spket 1.6.18
  SQL Server 2005
  本书资源包请登录华章网站(www.hzbook.com)下载。
如何阅读本书
  本书是采用循序渐进的方式来介绍Ext JS 4的,各章之间会有一定的关联,因此建议读者按章节的编排顺序逐章阅读。本书中有些示例是在Firebug中示范的, 所以最好在自己的机器上安装好Firefox和Firebug,以备使用。这样做的目的是让大家在阅读过程中熟悉Firebug的一些调试技巧,这些技巧在调试Ext JS时是相当有用的。例如,有初学者曾咨询为什么在Grid中显示不了数据,查了很久都查不到原因,让笔者帮忙看一下代码,笔者让他先用Firebug查看Store是否已提交数据请求,在Firebug网络面板中,他看到请求已发送,但是返回的是服务器端代码错误,最后查到仅仅是“将公有方法设置成私有方法”这样简单的修正。在很多时候,就是这样的错误造成大麻烦,所以笔者建议多使用Firebug,好的工具可以事半功倍。
  本书秉承实践是最好的老师的精神,立足于“自己动手,丰衣足食”的原则,因而希望读者在阅读本书的时候,能亲自动手去实践一下。Let抯 do it!
本书约定
  类名:本书中大量使用了简写的类名,在没有特殊说明的地方,简写类名就是指Ext JS源代码中的某个类。在附录中可查到各简写对应的类名。
  粗体文字:粗体文字表示在学习和使用中需要重点记忆或注意的内容。
  粗体代码:粗体代码表示代码中的关键代码。例如:
  var r = [], ri = -1,
    m = nthRe.exec(a == "even" && "2n" || a == "odd" && "2n+1" || !nthRe2.test(a) && "n+" + a || a),
    f = (m[1] || 1) - 0, l = m[2] - 0;
联系作者
  希望本书能给每位读者带来收益。如果对本书有任何意见和建议,或者有任何技术上的问题,请与笔者联系。笔者非常希望收到大家的建议以便提高创作水平,也非常乐意与大家一起探讨和分享有关Ext JS开发的问题,甚至是更广泛的Web开发问题。如果想联系笔者,请发邮件到huangdengqiao@yahoo.cn,或者通过微博http://weibo.com/gerneal互动。
致谢
  在本书的出版过程中,得到了机械工业出版社华章分社的编辑的大力支持,尤其是杨福川编辑。正是由于他们的辛勤劳动,才使笔者能够顺利完成本书的创作,笔者向他们表示衷心的感谢!
  在此,笔者也对网络上有名或无名的技术英雄表示衷心的感谢!若没有他们,笔者在工作和学习中碰到的困难会很难解决。有了他们,很多问题都迎刃而解了。

上架指导

计算机\程序设计

封底文字

注:加上51CTO的logo并注明“联合策划”
相比之前的版本,Ext JS 4发生了革命性的变化,它在创建之初就以最全面现代化为目标,采用了改进的架构并加入了许多新的特性,从而使开发者能用更低的成本开发出更加可靠的下一代Web应用。Ext JS几乎对框架的每个部分都进行了升级和优化,力图充分利用现今各主流浏览器的能力,同时它与之前的版本还是兼容的。本书是目前最全面和最系统化地讲解Ext JS 4的著作,Ext JS 4的所用功能、模块,以及开发方法和技巧全部包含在其中,是一本实实在在的“权威指南”,适合系统学习和开发参考,强烈推荐。
——51CTO 中国领先的IT技术网站
上将军是Ext JS领域当之无愧的专家,他在Ext JS领域的造诣之深,令人兴叹。难能可贵的是,他这些年来一直专注于Ext JS的研究和推广,紧跟Ext JS官方团队的步伐,撰写了大量关于Ext JS的最新资讯和技术文章,深受社区欢迎。同时,他还撰写了2本Ext JS的专著,广获读者好评。本书是它的第三本Ext JS著作,也是国内第一本真正全面针对Ext JS 4的专著,它不仅从应用的角度全面讲解了Ext JS的使用,而且还从源代码的角度深入分析了Ext JS的工作原理,可谓广度和深度兼备。
——Ext JS中国用户组

Ext JS 4是Web开发者的福音,本书则是想系统学习并深入了解Ext JS 4的读者的最佳选择!目前市面上关于Ext JS的书很多,但是真正基于Ext JS 4的著作仅此一本,大家都知道,Ext JS 4较之以前的版本发生了很大的变化。更为重要的是,目前市面上的同类著作,要么只讲Ext JS如何使用,要么只是枯燥地去分析源码,本书则是以教会读者“更好地使用Ext JS”为核心目的,以讲解Ext JS的开发方法和技巧为主,同时还对一些重要的功能模块和知识点的原理进行了源码分析,不仅能让读者知道如何做,而且还能知道为什么要这样做,最终实现做得更好的目的。还要重点提及的是,本书为了照顾不同读者的需要,服务器端的案例同时给出了Java和C#两个版本,作者之用心可见一斑!
——Ext JS中文社区

作者简介

黄灯桥 著:暂无简介

图书目录

前 言
第1章 Ext JS 4开发入门 / 1
1.1 学习Ext JS必需的基础知识 / 1
1.2 JSON概述 / 3
1.2.1 认识JSON / 3
1.2.2 JSON的结构 / 3
1.2.3 JSON的例子 / 4
1.2.4 在JavaScript中使用JSON / 4
1.2.5 在.NET中使用JSON / 8
1.2.6 在Java中使用JSON / 12
1.2.7 更多有关JSON的信息 / 15
1.3 Ext JS 4概述 / 15
1.4 Ext JS的开发工具的获取、安装与配置介绍 / 18
1.4.1 Ext Designer / 18
1.4.2 在Visual Studio中实现智能提示 / 23
1.4.3 Spket / 28
1.4.4 在Eclipse中实现智能提示 / 32
1.5 如何获得帮助 / 32
1.6 本章小结 / 33
第2章 从“Hello World”开始 / 34
2.1 获取Ext JS 4 / 34
2.2 配置使用Ext JS库 / 35
2.3 编写“Hello World”程序 / 37
2.4 关于Ext.onReady / 38
2.5 关于Ext.BLANK_IMAGE_URL / 40
2.6 关于字体 / 42
2.7 Ext JS 4语法 / 42
2.8 本地化 / 60
2.9 为本书示例准备一个模板 / 60
2.10 本章小结 / 61
第3章 调试工具及技巧 / 62
3.1 使用Firebug进行调试 / 62
3.2 在IE中调试 / 76
3.2.1 使用Debugbar和Companion.js调试 / 76
3.2.2 使用IEtester测试 / 80
3.2.3 在IE 8或IE 9中调试 / 83
3.3 在Chrome中调试 / 84
3.4 调试工具的总结 / 84
3.5 调试技巧 / 85
3.6 本章小结 / 89
第4章 Ext JS的基础架构 / 90
4.1 Ext JS框架的命名空间:Ext / 90
4.1.1 概述 / 90
4.1.2 apply和applyIf方法 / 90
4.1.3 不推荐的extend方法 / 92
4.1.4 数据及其类型检测 / 95
4.1.5 其他的基础方法 / 99
4.2 为框架顺利运行提供支持 / 107
4.2.1 平台检测工具:Ext.is / 107
4.2.2 当前运行环境检测工具:Ext.supports / 109
4.3 Ext JS的静态方法 / 112
4.3.1 概述 / 112
4.3.2 Ext.Object中的静态方法 / 113
4.3.3 Ext.Function中的静态方法 / 120
4.3.4 Ext.Array中的静态方法 / 127
4.3.5 Ext.Error中的静态方法 / 133
4.4 深入了解类的创建及管理 / 135
4.4.1 开始创建类 / 135
4.4.2 创建类的类:Ext.Class / 137
4.4.3 所有继承类的基类:Ext.Base / 151
4.4.4 实现动态加载:Ext.Loader / 151
4.4.5 管理类的类:Ext.ClassManager / 159
4.4.6 类创建的总结 / 161
4.5 动态加载的路径设置 / 163
4.6 综合实例:页面计算器 / 165
4.7 本章小结 / 169
第5章 Ext JS的事件及其应用 / 170
5.1 概述 / 170
5.2 浏览器事件 / 170
5.2.1 绑定浏览器事件的过程:Ext.EventManager / 170
5.2.2 封装浏览器事件:Ext.EventObject / 179
5.2.3 移除浏览器事件 / 181
5.3 内部事件 / 184
5.3.1 内部事件对象:Ext.util.Event / 184
5.3.2 为组件添加事件接口:Ext.util.Observable / 188
5.3.3 为组件绑定事件 / 189
5.3.4 内部事件的触发过程 / 192
5.3.5 移除事件 / 194
5.4 特定功能的事件对象 / 196
5.4.1 延时任务:Ext.util.DelayedTask / 196
5.4.2 一般任务:Ext.util.TaskRunner与Ext.TaskManager / 198
5.4.3 封装好的单击事件:Ext.util.ClickRepeater / 200
5.5 键盘事件 / 201
5.5.1 为元素绑定键盘事件:Ext.util.KeyMap / 201
5.5.2 键盘导航:Ext.util.KeyNav / 204
5.6 综合实例:股票数据的实时更新 / 205
5.7 本章小结 / 214
第6章 选择器与DOM操作 / 215
6.1 Ext JS的选择器:Ext.DomQuery / 215
6.1.1 选择器的作用 / 215
6.1.2 使用Ext.query选择页面元素 / 215
6.1.3 基本选择符 / 223
6.1.4 属性选择符 / 229
6.1.5 CSS属性值选择符 / 234
6.1.6 伪类选择符 / 235
6.1.7 扩展选择器 / 248
6.1.8 Ext.DomQuery的使用方法 / 249
6.1.9 Ext JS选择器的总结 / 252
6.2 获取单一元素:Ext.dom.Element / 252
6.2.1 从错误开始 / 252
6.2.2 使用Ext.get获取元素 / 253
6.2.3 使用Ext.fly获取元素 / 256
6.2.4 使用Ext.getDom获取元素 / 257
6.2.5 获取元素的总结 / 258
6.3 元素生成器:Ext.dom.Helper / 258
6.3.1 概述 / 258
6.3.2 使用createHtml或markup方法生成HTML代码 / 258
6.3.3 使用createDOM方法生成DOM对象 / 261
6.3.4 使用createTemplate方法创建模板 / 263
6.3.5 Helper对象的使用方法 / 263
6.4 元素的操作 / 273
6.5 获取元素集合:Ext.CompositeElementLite与Ext.CompositeElement / 277
6.5.1 使用Ext.select获取元素集合 / 277
6.5.2 Ext.dom.CompositeElement与Ext.dom.CompositeElementLite的区别 / 279
6.5.3 操作元素集合 / 279
6.6 综合实例:可折叠的面板Accordion / 280
6.7 本章小结 / 283
第7章 数据交互 / 284
7.1 数据交互基础 / 284
7.1.1 Ajax概述 / 284
7.1.2 封装Ajax:Ext.data.Connection与Ext.Ajax / 284
7.1.3 使用Ajax / 291
7.1.4 跨域获取数据:Ext.data.JsonP / 295
7.1.5 为Element对象提供加载功能:Ext.ElementLoader / 295
7.1.6 为组件提供加载功能:Ext.ComponentLoader / 296
7.2 代理 / 299
7.2.1 代理概述 / 299
7.2.2 基本的代理:Ext.data.proxy.Proxy / 300
7.2.3 进行批量操作:Ext.data.Batch与Ext.data.Operation / 303
7.2.4 服务器端代理:Ext.data.proxy.Server / 305
7.2.5 使用Ajax处理数据的代理:Ext.data.proxy.Ajax与Ext.data.proxy.Rest / 308
7.2.6 跨域处理数据的代理:Ext.data.proxy.JsonP / 312
7.2.7 为Ext.Direct服务的代理:Ext.data.proxy.Direct / 312
7.2.8 客户端代理:Ext.data.proxy.Client / 314
7.2.9 从变量中提取数据的代理:Ext.data.proxy.Memory / 314
7.2.10 使用浏览器存储的代理:Ext.data.WebStorageProxy、Ext.data. SessionStorageProxy和Ext.data.proxy.LocalStorage / 314
7.3 读取和格式化数据 / 315
7.3.1 概述 / 315
7.3.2 数据的转换过程:Ext.data.reader.Xml、Ext.data.reader.Json和Ext.data.reader.Array / 315
7.3.3 Reader对象的配置项 / 321
7.3.4 格式化提交数据:Ext.data.writer.Writer、Ext.data.writer.JSON和Ext.data. writer.Xml / 322
7.3.5 Writer对象的配置项 / 325
7.4 数据模型 / 326
7.4.1 概述 / 326
7.4.2 数据类型及排序类型:Ext.data.Types与Ext.data.SortTypes / 326
7.4.3 数据模型的骨架——字段:Ext.data.Field / 330
7.4.4 数据集:Ext.util.AbstractMixedCollection与Ext.util.MixedCollection / 330
7.4.5 数据验证及错误处理:Ext.data.validations与Ext.data.Errors / 332
7.4.6 模型的关系:Ext.data.Association、Ext.data.HasManyAssociation和Ext.data.BelongsToAssociation / 334
7.4.7 管理数据模型:Ext.AbstractManager与Ext.ModelManager / 336
7.4.8 定义数据模型:Ext.data.Model / 336
7.4.9 数据模型的定义过程 / 337
7.4.10 数据模型的创建 / 340
7.4.11 数据模型的配置项、属性和方法 / 343
7.5 Store / 344
7.5.1 概述 / 344
7.5.2 Store对象的实例化过程 / 345
7.5.3 TreeStore对象的实例化过程 / 348
7.5.4 Ext.data.Store加载数据的方法 / 350
7.5.5 Ext.data.TreeStore加载数据的方法 / 354
7.5.6 Store的配置项 / 358
7.5.7 Store的分页 / 359
7.5.8 Store的排序:Ext.util.Sorter与Ext.util.Sortable / 360
7.5.9 Store的过滤:Ext.util.Filter / 363
7.5.10 Store的分组:Ext.util.Grouper / 363
7.5.11 树节点:Ext.data.NodeInterface与Ext.data.Tree / 364
7.5.12 Store的方法 / 366
7.5.13 Store的事件 / 368
7.5.14 Store管理器:Ext.data.StoreManager / 369
7.6 综合实例 / 369
7.6.1 远程读取JSON数据 / 369
7.6.2 读取XML数据 / 378
7.6.3 Store的数据操作 / 379
7.7 本章小结 / 384
第8章 模板与组件基础 / 385
8.1 模板 / 385
8.1.1 模板概述 / 385
8.1.2 Ext.Template的创建与编译 / 385
8.1.3 格式化输出数据:Ext.String、Ext.Number、Ext.Date和Ext.util.Format / 389
8.1.4 超级模板:Ext.XTemplate(包括Ext.XTemplateParser和Ext.XTemplateCompiler) / 393
8.1.5 模板的方法 / 396
8.2 组件的基础知识 / 396
8.2.1 概述 / 396
8.2.2 组件类的整体架构 / 397
8.2.3 布局类的整体架构 / 402
8.2.4 组件的创建流程 / 403
8.2.5 常用的组件配置项、属性、方法和事件 / 415
8.3 为组件添加功能 / 418
8.3.1 为元素添加阴影:Ext.Shadow与Ext.ShadowPool / 418
8.3.2 为组件提供阴影和shim功能:Ext.Layer / 419
8.3.3 让组件实现浮动功能:Ext.util.Floating / 420
8.3.4 记录组件状态:Ext.state.Stateful / 420
8.3.5 实现调整大小功能:Ext.resizer.Resizer与Ext.resizer.ResizeTracker / 420
8.3.6 为组件提供拖动功能:Ext.util.ComponentDragger / 421
8.3.7 为组件实现动画功能:Ext.util.Animate / 422
8.3.8 其他的组件辅助功能类 / 423
8.4 组件的管理 / 423
8.4.1 组件管理及查询:Ext.ComponentManager与Ext.ComponentQuery / 423
8.4.2 焦点管理:Ext.FocusManager / 424
8.4.3 z-order管理:Ext.ZindexManager与Ext.WindowManager / 425
8.4.4 状态管理:Ext.state.Manager、Ext.state.Provider、Ext.state.Local-StorageProvider和Ext.state.CookieProvider / 426
8.5 综合实例 / 426
8.5.1 使用子模板 / 426
8.5.2 递归调用模板 / 428
8.6 本章小结 / 429
第9章 容器、面板、布局和视图 / 430
9.1 容器与布局的关系 / 430
9.2 容器 / 431
9.2.1 容器的创建过程:Ext.container.AbstractContainer与Ext.container.Container / 431
9.2.2  Ext.container.AbstractContainer和Ext.container.Container的配置项、属性、方法和事件 / 434
9.2.3 将body元素作为容器:Ext.container.Viewport / 435
9.3 面板 / 436
9.3.1 面板的结构 / 436
9.3.2 构件的放置:dockedItems / 438
9.3.3 面板标题栏构件:Ext.panel.Header与Ext.panel.Tool / 438
9.3.4 记录和恢复面板属性:Ext.util.Memento / 439
9.3.5 面板常用的配置项、方法和事件 / 439
9.4 布局 / 441
9.4.1 布局概述 / 441
9.4.2 布局的运行流程:Ext.layout.Layout / 441
9.4.3 容器类布局基类:Ext.layout.container.Container / 442
9.4.4 盒子布局、垂直布局与水平布局:Ext.layout.container.Box、Ext.layout.container.VBox与Ext.layout.container.HBox / 442
9.4.5 为盒子模型提供调整大小的功能:Ext.resizer.Splitter / 445
9.4.6 手风琴布局:Ext.layout.container.Accordion / 447
9.4.7 锚固布局:Ext.layout.container.Anchor / 448
9.4.8 绝对定位布局:Ext.layout.container.Absolute / 450
9.4.9 边框布局:Ext.layout.container.Border / 451
9.4.10 自动布局:Ext.layout.container.Auto / 453
9.4.11 表格布局:Ext.layout.container.Table / 454
9.4.12 列布局:Ext.layout.container.Column / 455
9.4.13 自适应布局:Ext.layout.container.AbstractFit与Ext.layout.container.Fit / 456
9.4.14 卡片布局:Ext.layout.container.AbstractCard与Ext.layout.container.Card / 456
9.5 标签面板 / 458
9.5.1 标签面板的构成及其运行流程:Ext.tab.Panel、Ext.tab.Bar与Ext.tab.Tab / 458
9.5.2 标签面板的配置项、属性、方法和事件 / 462
9.5.3 使用标签页 / 463
9.5.4 可重用的标签页 / 465
9.6 视图与选择模型 / 465
9.6.1 视图与选择模型概述 / 465
9.6.2 视图的运行流程:Ext.view.AbstractView与Ext.view.View / 466
9.6.3 选择模型的工作流程 / 475
9.6.4 选择模型的配置项、属性、方法和事件 / 480
9.6.5 视图的配置项、属性、方法和事件 / 482
9.6.6 使用视图 / 484
9.7 页面布局设计 / 491
9.8 综合实例 / 492
9.8.1 布局设计实例:仿Eclipse界面 / 492
9.8.2 在单页面应用中使用卡片布局实现“页面”切换 / 496
9.9 本章小结 / 498
第10章 重构后的Grid / 500
10.1 Grid的基类及其构成 / 500
10.1.1 概述 / 500
10.1.2 表格面板的运行流程:Ext.panel.Table / 500
10.1.3 表格视图的运行流程:Ext.view.Table与Ext.view.TableChunker / 505
10.1.4 列标题容器的运行流程:Ext.grid.header.Container / 508
10.1.5 列标题的运行流程:Ext.grid.column.Column / 510
10.1.6 虚拟滚动条的工作原理:Ext.grid.PagingScroller / 511
10.1.7 锁定列的运行流程:Ext.grid.Lockable与Ext.grid.LockingView / 516
10.2 使用Grid / 520
10.2.1 最简单的Grid / 520
10.2.2 列的配置项 / 521
10.2.3 自定义单元格的显示格式 / 523
10.2.4 通过列对象定义单元格的显示格式 / 525
10.2.5 设置行的背景颜色 / 532
10.2.6 列标题的分组 / 533
10.2.7 使用锁定列 / 534
10.2.8 Grid的配置项、属性、方法和事件 / 535
10.3 Grid的附加功能 / 537
 10.3.1 概述 / 537
 10.3.2 附加功能基类:Ext.grid.featrue.Featrue / 537
 10.3.3 为行添加附加信息:Ext.grid.featrue.RowBody / 538
 10.3.4 数据汇总功能:Ext.grid.featrue.AbstractSummary与Ext.grid.featrue. Summary / 539
10.3.5 分组功能:Ext.grid.featrue.Grouping / 543
10.3.6 分组汇总功能:Ext.grid.featrue.GroupingSummary / 545
10.4 可编辑的Grid / 546
10.4.1 概述 / 546
10.4.2 Grid实现可编辑功能的运行流程:Ext.grid.plugin.Editing / 547
10.4.3 单元格编辑的运行流程:Ext.grid.plugin.CellEditing、Ext.grid.CellEditor与Ext.Editor / 550
10.4.4 行编辑的运行流程:Ext.grid.plugin.RowEditing与Ext.grid.RowEditor / 556
10.4.5 在Grid中使用单元格编辑模式 / 561
10.4.6 在Grid中使用行编辑模式 / 562
10.4.7 Grid编辑插件的配置项、属性、方法和事件 / 563
10.5 关于列表视图:ListView / 564
10.6 属性Grid / 564
10.6.1 概述 / 564
10.6.2 使用属性Grid / 564
10.6.3 自定义编辑组件 / 565
10.6.4 PropertyGrid的配置项、属性、方法和事件 / 566
10.7 综合实例 / 567
10.7.1 使用不同选择模型的Grid以及设置默认选择行 / 567
10.7.2 Grid的本地排序和过滤 / 569
10.7.3 使用分页工具条(PagingToolbar)实现远程分页、排序和过滤 / 570
10.7.4 使用分页滚动条(PagingScroller)实现远程分页、排序和过滤 / 574
10.7.5 使用CellEditing实现数据的增删改 / 578
10.7.6 使用RowEditing实现数据的增删改 / 587
10.7.7 主从表的显示 / 589
10.8 本章小结 / 595
第11章 与Grid同源的树 / 597
11.1 树的构成 / 597
11.1.1 概述 / 597
11.1.2 树面板的运行流程:Ext.tree.Panel / 597
11.1.3 TreeStore的运行流程:Ext.data.TreeStore / 600
11.1.4 TreeColumn的运行流程:Ext.tree.Column / 602
11.1.5 视图的运行流程:Ext.tree.View与Ext.data.NodeStore / 602
11.1.6 树的选择模型:Ext.selection.TreeModel / 603
11.2 树的使用 / 603
11.2.1 一个最简单的树 / 603
11.2.2 树节点的默认字段 / 603
11.2.3 为树节点添加附加字段 / 604
11.2.4 显示多列数据(TreeGrid效果) / 605
11.2.5 在树中使用复选框 / 605
11.2.6 树的配置项、属性、方法和事件 / 607
11.3 综合实例 / 608
11.3.1 树的远程加载 / 608
11.3.2 树的动态加载及节点维护 / 610
11.3.3 XML树及节点维护 / 617
11.3.4 使用树动态控制Grid的显示 / 622
11.4 本章小结 / 625
第12章 表单 / 626
12.1 表单的构成及操作 / 626
12.1.1 表单面板的运行流程:Ext.form.Panel与Ext.form.FieldAncestor / 626
12.1.2 表单面板的配置项、属性、方法和事件 / 628
12.1.3 表单的管理:Ext.form.Basic / 629
12.1.4 BasicForm的配置项、属性、方法和事件 / 635
12.1.5 表单的操作:Ext.form.action.Action / 636
12.1.6 加载操作的运行流程:Ext.form.action.Load与Ext.form.action.DirectLoad / 637
12.1.7 提交操作的运行流程:Ext.form.action.Submit、Ext.form.action.DirectSubmit与Ext.form.action.StandardSubmit / 641
12.1.8 字段的构成 / 643
12.1.9 BaseField的配置项、属性、方法和事件 / 643
12.1.10 常用的验证函数:Ext.form.field.VTypes / 647
12.2 使用字段 / 647
12.3 使用Trigger类字段 / 664
12.3.1 具有单击功能的字段:Ext.form.field.Trigger / 664
12.3.2 实现微调功能的Spinner字段 / 665
12.3.3 使用NumberField字段 / 666
12.3.4 下拉选择类字段的基类:Ext.form.field.Picker / 667
12.3.5 使用DateField字段 / 667
12.3.6 使用TimeField字段 / 669
12.4 使用ComboBox字段 / 669
12.4.1 概述 / 669
12.4.2 BoundList对象的运行流程 / 670
12.4.3 ComboBox字段的配置项、属性、方法和事件 / 671
12.4.4 最简单的ComboBox / 672
12.4.5 自定义列表显示格式的ComboBox / 673
12.4.6 动态调整ComboBox的列表数据 / 674
12.4.7 实现ComboBox的联动 / 676
12.4.8 使用ComboBox的查询功能 / 684
12.4.9 设置ComboBox的默认值 / 688
12.5 表单的验证和加载数据 / 690
12.5.1 表单的验证及错误显示方式 / 690
12.5.2 为表单加载数据 / 695
12.6 在表单中使用布局 / 701
12.6.1 分列显示表单的字段 / 701
12.6.2 使用Fieldset作为列容器 / 703
12.6.3 使用两列布局加HtmlEditor的表单 / 704
12.6.4 在表单中使用标签页 / 705
12.7 综合实例:实现Products表的管理功能 / 706
12.8 本章小结 / 715
第13章 窗口 / 716
13.1 窗口:Ext.window.Window. / 716
13.1.1 窗口的构成 / 716
13.1.2 窗口的配置项、属性、方法和事件 / 716
13.1.3 使用窗口 / 718
13.1.4 在窗口内使用布局 / 719
13.2 信息提示窗口:Ext.window.MessageBox / 720
13.2.1 概述 / 720
13.2.2 信息提示窗口的构成 / 720
13.2.3 使用信息提示窗口 / 722
13.2.4 信息提示窗口按钮的本地化 / 723
13.2.5 使用alert方法 / 724
13.2.6 使用confirm方法 / 724
13.2.7 使用progress方法 / 725
13.2.8 使用prompt方法 / 726
13.2.9 使用wait方法 / 727
13.2.10 使用信息提示窗口要注意的问题 / 727
13.3 综合实例:实现登录窗口 / 729
13.4 本章小结 / 733
第14章 按钮、菜单与工具条 / 734
14.1 按钮 / 734
14.1.1 按钮的构成:Ext.button.Button / 734
14.1.2 按钮的配置项、属性、方法和事件 / 734
14.1.3 使用按钮 / 736
14.1.4 带分割线的按钮:Ext.button.Split / 737
14.1.5 多状态按钮:Ext.button.Cycle / 737
14.1.6 按钮组:Ext.container.ButtonGroup / 738
14.2 菜单及菜单项 / 739
14.2.1 Ext JS的菜单(Menu对象)是什么 / 739
14.2.2 菜单管理器:Ext.menu.Manager / 740
14.2.3 菜单项:Ext.menu.Item / 740
14.2.4 可复选的菜单项:Ext.menu.CheckItem / 741
14.2.5 菜单分隔条:Ext.menu.Separator / 741
14.2.6 颜色选择器菜单:Ext.menu.ColorPicker / 742
14.2.7 日期选择菜单:Ext.menu.DatePicker / 742
14.2.8 使用菜单 / 742
14.3 工具栏及工具栏组件 / 743
14.3.1 工具栏:Ext.toolbar.Toolbar / 743
14.3.2 非交互式工具栏条目的基类:Ext.toolbar.Item / 743
14.3.3 文本项:Ext.toolbar.TextItem / 744
14.3.4 填充项:Ext.toolbar.Fill / 744
14.3.5 工具栏分隔条:Ext.toolbar.Separator / 744
14.3.6 空白项:Ext.toolbar.Spacer / 744
14.3.7 分页工具栏:Ext.toolbar.Paging / 744
14.3.8 使用工具栏 / 747
14.4 使用Ext.Action / 747
14.4.1 概述 / 747
14.4.2 Action对象配置项和方法 / 748
14.4.3 使用示例 / 748
14.5 综合实例:在Grid中使用右键菜单 / 750
14.6 本章小结 / 752
第15章 图形与图表 / 753
15.1 基础知识 / 753
15.1.1 SVG简介 / 753
15.1.2 VML简介 / 754
15.2 图形介绍 / 755
15.2.1 概述 / 755
15.2.2 画布的工作流程:Ext.draw.Component / 755
15.2.3 图形引擎及接口:Ext.draw.Surface、Ext.draw.engine.Svg和Ext.draw.engine.Vml / 757
15.2.4 画笔:Ext.draw.Sprite / 760
15.2.5 图层:Ext.draw.CompositeSprite / 760
15.2.6 调色板:Ext.draw.Color / 760
15.2.7 辅助对象:Ext.draw.Draw与Ext.draw.Matrix / 760
15.3 使用图形功能 / 760
15.3.1 简单的开始 / 760
15.3.2 DrawComponent对象的配置项、属性、方法和事件 / 761
15.3.3 Surface对象的配置项、属性、方法和事件 / 761
15.3.4 DrawSprite对象的配置项、属性、方法和事件 / 762
15.3.5 CompositeSprite对象的配置项、属性、方法和事件 / 763
15.3.6 使用基本图形 / 764
15.3.7 使用图片 / 765
15.3.8 使用路径 / 766
15.3.9 移动、旋转和缩放图形 / 767
15.3.10 使用渐变效果 / 770
15.3.11 使用图层 / 771
15.4 图表介绍 / 772
15.4.1 概述 / 772
15.4.2 图表的工作流程 / 773
15.5 使用图表 / 776
15.5.1 从一个简单例子开始 / 776
15.5.2 坐标轴的配置项 / 777
15.5.3 Series对象的配置项、属性、方法和事件 / 779
15.5.4 折线图的配置项 / 780
15.5.5 显示多个折线图及使用图例 / 782
15.5.6 使用面积图 / 783
15.5.7 简单条形图(Bar和Column Chart)及使用标签(Label对象) / 785
15.5.8 堆积条形图 / 787
15.5.9 分组条形图 / 788
15.5.10 自定义条形颜色 / 789
15.5.11 使用散点图 / 789
15.5.12 使用饼图 / 791
15.5.13 自定义饼块颜色 / 792
15.5.14 使用表盘图 / 792
15.5.15 使用雷达图 / 795
15.5.16 使用时间轴 / 796
15.5.17 实现实时动态的图表 / 797
15.5.18 使用组合图 / 800
15.5.19 在图表中使用背景 / 801
15.5.20 在图表中自定义主题 / 803
15.6 本章小结 / 805
第16章 其他组件及实用功能 / 806
16.1 其他组件 / 806
16.2 使用滑块 / 812
16.3 使用提示信息 / 814
16.4 实用功能 / 822
16.5 本章小结 / 826
第17章 可简化通信的Ext.Direct / 827
17.1 准备工作 / 827
17.2 Ext.Direct的工作原理及构成 / 827
17.2.1 工作原理 / 827
17.2.2 Ext.Direct的构成 / 828
17.2.3 RemotingProvider对象的具体工作流程 / 829
17.2.4 PollingProvider对象的具体工作流程 / 838
17.3 配置Ext.Direct的使用环境 / 839
17.3.1 概述 / 839
17.3.2 .NET环境的配置 / 839
17.3.3 Java环境的配置 / 842
17.4 使用Ext.Direct / 846
17.4.1 概述 / 846
17.4.2 使用DirectProxy及进行CURD操作 / 846
17.4.3 使用Ext.Direct实现树的动态加载及节点维护 / 854
17.4.4 使用DirectLoad为表单加载数据 / 858
17.4.5 使用DirectSubmit提交表单及使用Session / 863
17.4.6 使用Ext.Direct上传文件 / 866
17.4.7 使用PollingProvider对象 / 868
17.4.8 错误处理 / 871
17.5 本章小结 / 872
第18章 动画功能 / 873
18.1 动画功能的构成及工作流程 / 873
18.1.1 概述 / 873
18.1.2 动画功能的工作流程:Ext.fx.Anim / 874
18.1.3 分步动画的工作流程:Ext.fx.Animator / 877
18.2 使用动画 / 880
18.2.1 由最简单的动画开始 / 880
18.2.2 过渡效果使用的功能函数介绍 / 880
18.2.3 使用分步动画 / 882
18.2.4 注意的问题 / 883
18.3 在Element对象中使用动画 / 883
18.4 本章小结 / 888
第19章 拖放功能 / 889
19.1 拖放功能的构成及工作流程 / 889
19.1.1 概述 / 889
19.1.2 DragDropManager对象的工作流程 / 891
19.1.3 注册节点:Ext.dd.Registry / 893
19.1.4 一般拖动功能的工作流程:Ext.dd.DD / 894
19.1.5 DragSource对象的工作流程 / 897
19.1.6 DropTarget对象的工作流程 / 898
19.1.7 DragZone对象的工作流程 / 899
19.1.8 DropZone对象的工作流程 / 899
19.2 使用拖放功能 / 899
19.2.1 最简单的拖动效果 / 899
19.2.2 使用DragSource对象与DropTarget对象 / 900
19.2.3 使用DragZone对象与DropZone对象(使用Registry对象) / 902
19.2.4 使用DragZone对象与DropZone对象(不使用Registry对象) / 903
19.2.5 通过拖动实现节点排序 / 904
19.2.6 使用GridViewDropZonePlugin插件 / 905
19.2.7 使用TreeViewDragDropPlugin插件 / 907
19.2.8 关于Grid和Tree拖动后的数据保存问题 / 910
19.3 本章小结 / 910
第20章 扩展与插件 / 911
20.1 扩展与插件的区别 / 911
20.2 扩展与插件如何选择 / 911
20.3 如何编写扩展 / 911
20.3.1 命名空间 / 911
20.3.2 定义扩展 / 912
20.3.3 定义别名 / 912
20.3.4 定义备用名 / 912
20.3.5 要求加载的类:requires与uses / 912
20.3.6 混入功能 / 913
20.3.7 构造函数与initComponent方法 / 913
20.3.8 静态属性和方法与单件模式 / 913
20.3.9 可自动生成set和get方法的属性与initConfig方法 / 914
20.3.10 在扩展中常用的方法 / 914
20.3.11 编写扩展:TreeComboBox / 914
20.4 如何编写插件 / 920
20.4.1 概述 / 920
20.4.2 AbstractPlugin对象 / 921
20.4.3 插件的别名 / 921
20.4.4 编写插件:RowColor / 922
20.5 扩展和插件介绍 / 923
20.5.1 概述 / 923
20.5.2 本地分页代理:Ext.ux.data.PagingMemoryProxy / 923
20.5.3 标签滚动菜单:Ext.ux.TabScrollerMenu / 925
20.5.4 编辑器TinyMCE / 926
20.6 本章小结 / 928
第21章 主题开发 / 929
21.1 准备工作 / 929
21.1.1 安装Ruby / 929
21.1.2 安装Compass / 930
21.1.3 SASS介绍 / 931
21.2 为Ext JS 4创建新主题 / 933
21.2.1 概述 / 933
21.2.2 目录结构 / 933
21.2.3 修改配置 / 933
21.2.4 编译 / 935
21.2.5 测试主题 / 935
21.3 通过ui配置项设置组件样式 / 937
21.4 本章小结 / 937
第22章 MVC应用架构 / 938
22.1 MVC应用架构的构成及工作流程 / 938
22.1.1 构成 / 938
22.1.2 控制器的工作流程:Ext.app.Controller / 938
22.1.3 Application对象的工作流程 / 940
22.2 一步一步实现MVC框架 / 942
22.2.1 概述 / 942
22.2.2 创建目录 / 942
22.2.3 创建首页 / 942
22.2.4 创建启动脚本:app.js / 943
22.2.5 定义登录对话框 / 944
22.2.6 创建应用脚本:Application.js / 948
22.2.7 创建Viewport视图 / 949
22.2.8 菜单视图及控制器 / 950
22.2.9 实现订单管理 / 952
22.2.10 实现产品管理 / 958
22.2.11 示例效果 / 969
22.3 本章小结 / 970
附录 简写类名与Ext JS类名对照表 / 971

教学资源推荐
作者: 陈家骏 郑滔 编著
作者: (美)Kenneth C.Louden
作者: (美)Dennis Kafura
作者: 邱李华,曹青,郭志强
参考读物推荐
作者: (希)Diomidis Spinellis
作者: (美)David Sawyer McFarland 著
作者: [美] 卡梅伦?休斯(Cameron Hughes),特雷西?休斯(Tracey Hughes) 著
作者: Adam Myatt