理解Ext JS高级编程:Ext.Element与CSS样式操作

需积分: 9 10 下载量 94 浏览量 更新于2024-08-01 收藏 382KB PDF 举报
"Ext JS高级程序设计探讨了Ext JS的核心概念和高级技术,包括Ext.Element的重要性和使用细节,以及CSS样式的操作方法。" 在深入理解Ext JS高级程序设计时,首先需要掌握ExtCore中的核心概念,特别是Ext.Element。Ext.Element是Ext JS库中用于封装DOM元素的一个对象,它提供了丰富的API来操作和管理DOM节点。在编程实践中,一个关键的区分在于使用`Ext.get`和`Ext.fly`方法。`Ext.get`用于获取一个Ext.Element的实例,并将其存储在缓存中,适合长期引用;而`Ext.fly`则是快速获取一次性使用的Ext.Element实例,它不保存在缓存中,以降低内存消耗。例如: ```javascript var el = Ext.get('id1'); Ext.fly('id2').hide(); el.hide(); // 这里el可能已经不是'id1'的引用,可能导致预期外的结果 ``` 开发者需要注意,`Ext.fly`的使用可能导致变量引用改变,如上述示例所示。如果需要确保引用不变,应使用`Ext.get`。 此外,当只需要HTMLElement对象时,可以使用`Ext.getDom`方法。这个方法接受DOM节点ID、DOM节点本身或已存在的Ext.Element,并返回基础的HTMLElement对象,方便直接调用DOM原生的方法和属性。 在处理CSS样式时,Ext.Element提供了一系列便捷的方法。例如,`addClass`方法用于添加样式类,支持一次性添加多个类: ```javascript Ext.fly('elId').addClass('elCss'); // 添加单个样式类 Ext.fly('elId').addClass(['elCss1', 'elCss2']); // 添加多个样式类 ``` 在使用Ext.Element操作DOM节点的样式时,必须注意区分Ext.Element对象与HTMLElement对象。Ext.Element对象不直接暴露DOM节点的原生属性,如innerHTML,而是通过`.dom`属性访问。例如: ```javascript var el = Ext.get('elId'); el.dom.innerHTML = 'Test'; // 正确设置innerHTML的方式 ``` 这11种操作样式的方法还包括`removeClass`、`toggleClass`、`hasClass`等,它们分别用于移除样式类、切换样式类和检查元素是否包含特定样式类。通过这些方法,开发者可以方便地管理DOM元素的外观和行为,实现动态界面效果。 深入理解Ext JS的Ext.Element机制和CSS样式操作是提升应用程序性能和用户体验的关键。开发者应根据实际需求选择适当的方法,平衡性能和易用性。在处理大量DOM操作时,合理利用`Ext.fly`来优化内存使用,同时注意区分Ext.Element与HTMLElement对象,以避免可能出现的错误。
2010-04-21 上传
目录 前 言 第一部分 Ext Core 第1章 Ext Core重要概念 2 1.1 Ext.Element 2 1.1.1 获取HTMLElement节点的Ext.Element实例 2 1.1.2 CSS样式操作 3 1.1.3 DOM查询与遍历 4 1.1.4 DOM操作 6 1.1.5 事件处理 9 1.1.6 尺寸大小 13 1.1.7 定位功能 14 1.1.8 动画功能 16 1.1.9 杂项 19 1.2 Ext Core的Ajax功能 19 1.3 DomQuery详解 20 1.4 模板介绍 23 1.5 实用功能 24 1.6 定时执行代码 25 1.7 本章小结 26 第2章 Ext Core实例系统设计 27 2.1 需求分析 27 2.2 系统设计 28 2.3 功能结构图 29 2.4 开发与运行环境 31 2.5 数据库设计 31 2.6 本章小结 34 第3章 Ext Core实例—.NET语言实现 35 3.1 创建应用并设置开发环境 35 3.2 自定义Membership提供程序 37 3.3 创建母版页 38 3.4 首页设计 42 3.5 产品列表页 47 3.6 产品详细信息页 51 3.7 登录对话框 56 3.8 用户注册对话框 61 3.9 购物车对话框 65 3.10 结算 70 3.11 为产品详细页添加评论 77 3.12 本章小结 84 第4章 Ext Core实例—Java语言实现 85 4.1 技术选型 85 4.2 搭建开发环境 85 4.3 设计页面布局 87 4.4 网上商店首页 90 4.5 产品列表页面 98 4.6 产品详细信息页面 105 4.7 登录对话框 113 4.8 用户注册对话框 118 4.9 购物车对话框 123 4.10 结算页面 126 4.11 为产品添加评论功能 133 4.12 本章小结 139 第二部分 Store和Direct 第5章 在.NET中使用Ext.Direct 142 5.1 路由器包的内容 142 5.2 DIY一个Ext.Direct实例 152 5.3 NewtonSoft.JSON 155 5.3.1 JSON的序列化和反序列化 155 5.3.2 LINQ to JSON 158 5.3.3 JSON文本的输出 162 5.4 本章小结 163 第6章 在Java中使用Ext.Direct 164 6.1 在Java平台上配置Ext.Direct 164 6.1.1 下载directjngine 164 6.1.2 配置主控servlet 165 6.1.3 配置客户端 170 6.1.4 编写JavaScript调用远程方法 172 6.2 为Ext.Direct自定义远程方法 173 6.3 Ext.Direct中的高级应用 178 6.3.1 批量请求和批量响应 178 6.3.2 在tree中使用Ext.Direct 181 6.3.3 为grid设置DirectStore 183 6.3.4 在form中使用Ext.Direct加载数据 185 6.3.5 在form中使用Ext.Direct提交数据 187 6.3.6 使用polling方式进行轮询 189 6.4 本章小结 191 第7章 Store 192 7.1 Store的结构 192 7.2 Ext.data.Field 197 7.3 Ext.data.Record 198 7.4 ArrayReader、JsonReader和XmlReader 199 7.4.1 JsonReader 200 7.4.2 ArrayReader 200 7.4.3 XmlReader 201 7.5 Store的加载数据 201 7.6 Store的数据操作 203 7.6.1 添加数据 203 7.6.2 删除数据 203 7.6.3 搜索、定位和统计 203 7.6.4 更新数据 206 7.6.5 排序 207 7.7 DataProxy 208 7.8 DirectStore 209 7.9 DataWriter 212 7.10 Ext.data.Api 212 7.11 本章小结 213 第三部分 Ext-UI 第8章 Ext用户界面控件 216 8.1 布局 216 8.1.1 在FormPanel中使用HBoxLayout进行布局 216 8.1.2 在FormPanel中使用HBoxLayout和VBoxLayout进行布局 219 8.1.3 Panel的body的样式范围 224 8.2 Form表单组件 226 8.2.1 DisplayField控件 226 8.2.2 在FormPanel中使用TabPanel 229 8.2.3 DirectLoad与DirectSubmit 232 8.2.4 使用DirectSubmit上传文件 235 8.3 Grid组件 238 8.3.1 一个结合DataWrite和RowEditor的Grid示例 238 8.3.2 在CRUD操作中restful的设置以及使用Ext.Direct的问题 247 8.4 ListView控件 248 8.5 本章小结 251 第四部分 Ext 扩展和Ext插件 第9章 Ext 扩展 254 9.1 利用Ext.extend实现继承 254 9.2 与Ext扩展相关的预备知识 256 9.2.1 定义命名空间 256 9.2.2 重写构造函数 257 9.2.3 继承组件的一些准备 257 9.2.4 常用的辅助函数 258 9.2.5 使用xtype 258 9.3 实现一个功能完整的增、删、查、改表格控件 259 9.3.1 扩展GridPanel 259 9.3.2 配置列模型 259 9.3.3 配置显示数据 260 9.3.4 点缀EasyGrid 261 9.3.5 实现添加一条记录的功能 262 9.3.6 实现修改一条记录的功能 264 9.3.7 实现删除一条记录的功能 266 9.4 从头实现 Ext扩展 270 9.5 本章小结 274 第10章 Ext插件 275 10.1 插件的用法 275 10.2 标签页右键菜单TabCloseMenu 276 10.3 面板最大化MaximizeTool 278 10.4 分页设置PageSizePlugin 282 10.5 行数据扩展RowExpander 284 10.6 本章小结 290 第五部分 调试 第11章 调试 292 11.1 测试Ext.Element的功能 292 11.1.1 获取Ext.Element实例 292 11.1.2 测试CSS样式操作 294 11.1.3 测试DOM操作 296 11.1.4 测试DOM查询与遍历 300 11.1.5 测试事件处理 302 11.2 结合DataWrite和RowEditor的Grid的调试过程 303 11.3 本章小结 306 第六部分 实例 第12章 单页面应用实例系统分析 308 12.1 系统分析 308 12.2 系统设计 308 12.2.1 单页面应用设计的难点 308 12.2.2 开发与运行环境 309 12.2.3 数据库设计 309 12.3 各个模块的详细功能说明 311 12.3.1 登录页面 311 12.3.2 主页面 311 12.3.3 角色管理 311 12.3.4 用户管理 312 12.3.5 进仓管理 312 12.3.6 出仓管理 313 12.3.7 产品管理 313 12.3.8 库存统计 314 12.3.9 修改密码 314 12.4 本章小结 314 第13章 单页面应用实例—.NET语言实现 315 13.1 创建应用并设置开发环境 315 13.2 自定义Membership提供程序 317 13.3 登录页 319 13.4 主页面 324 13.5 Ext.Direct的API句柄 329 13.6 修改密码对话框 330 13.7 角色管理模块 333 13.8 用户管理 345 13.9 产品管理 356 13.10 进仓管理 367 13.11 出仓管理 388 13.12 库存统计 403 13.13 退出页 407 13.14 权限设置 408 13.15 本章小结 409 第14章 单页面应用实例——Java语言实现 410 14.1 技术选型 410 14.2 搭建开发环境 411 14.3 配置Ext.Direct 413 14.4 用户登录页面 417 14.5 系统主页面与动态菜单 421 14.6 用户管理模块 427 14.7 角色管理模块 439 14.8 产品管理模块 447 14.9 进仓管理模块 450 14.10 出仓管理模块 460 14.11 库存统计模块 474 14.12 用户修改密码窗口 479 14.13 用户注销 482 14.14 本章小结 483