链接:http://product.china-pub.com/3661375&weibo#ml
《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