`
ksdq75ksdq
  • 浏览: 12129 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ext JS 4的Grid组件

 
阅读更多

  我们正在不懈地努力着Ext JS4。到目前为止所呈送给各位看官的只是程序员预览版本(Developer Perview),不过我们打算在未来四到六个星期之内,就会发布ExtJS 4的最终版本。近期发布一次的程序员版本中附送了最新的Ext JS 4 Grid组件。为着真正发挥Ext JS 4底层能力,我们对Grid组件完全重写,可以说比较起3.x版本将会有显著的改善。4.0在性能和灵活性这两方面尤其得到改善,其中改善灵活性的好处,便是添加Grid的新功能更加容易了。下面就请跟着我们和文字,一起罗列罗列下Grid有哪些最新、最重要的功能。 
  旧Ext JS 3 Grid工作起来还是蛮不错的。但通过“最小公分母(least common denominator)”的方法论来确定其各种功能的话,很容易带来一点不足的就是,伴随着Grid的每一项功能,都会生成大量的HTML Markup产生。我们不得不面对这个问题。于是在ExtJS 4中,规定Grid的每一项功能,只会根据开发人员设定与否,才会渲染出与之对应功能的Markup在页面上。Grid默认启动时只有为数不多的Markup而已。这样设计API的结果,便是在渲染页面以及Grid整体效能这双方面均得到极大的提升。  渲染流水线得到了改善,Grid的其他方面亦齐头迈进,不甘人后。许多Grid的部分都被规划成为单独、清晰的Component组件,整合到标准的布局管理系统中,并非旧版中直接处理内部Markup、CSS的那种方式。这使得API可以联合框架的其他强大的特性,进而来统一Grid的渲染流程。而这些过程,仍维持在精确到象素级别(pixel-perfect)的UI体验水准。  新的GridView继承自标准DatView视图。这不仅能够减掉内部冗余代码,而且使得新Grid更轻松地去自定义。继承自DataView所体现的好处,首先便是可以直接借助选区模型(Selection Model)来作为任意的试图,包括那些用键盘选定的非相邻的选区。  在Ext JS 3里面为Grid加入新功能,一般API接口方面有良好的考虑。但现在来看,却没有一种清晰的流程方法去指导,显得比较乱。有时通过写插件(Plugins),有时就写子类。总之扩展Grid的话可能会比较复杂。 
  要解决上述问题,实质就是提供一种彻底灵活的选项操作。ExtJS 4将引入全新的一个Grid基类,称作Ext.grid.Feature。通过继承这个Feature类,对任何Grid其所在模板(Template)进行修改,就可以控制当前Grid视图生成的Markup结果。Features类跟旧版的GridView相似,但能力更强,也更为有用。之所以有用和强大,是在于其对延续Grid功能这点上表现得更为简单和适配。Grid里头的一些功能如RowWrap、RowBody和Grouping都是Fetures之子类。  Ext 4 Grid已经可以做到原生支持“按需加载(load-on-demand)”的数据视图了。虽然这是个虚拟视图,但是的确可以能够做到数据的缓冲。无论上百条抑或达上千笔的数据,都可以保证在Grid轻松显示。无疑,这将大大扩充了Grid数据处理能力。  我们依然拿旧版对比一下。Ext 3里面要编辑Grid单元格,就必须制定EditorGrid类。通过继承方式可能不太灵活。于是 Ext 4就否决了继承的方式,而是采用“插件化”的方式。通过Ext JS4的Editing插件可以自由绑定到任意的Grid的实例,对于全体任何类型的Grid均可使用。于是乎,此举又为提高“灵活性(flexibility)”添泼了一抹浓彩。此外,对于Ext 3中很受大家所欢迎的一款扩展:RowEditor,在这次发布,我们也将RowEditor正式加入的Ext 4包中,成为标准类库的一员。  
  
  下面的例子是演示的Ext JS的Grid分组功能的。要逐一显示所有功能,于一例子中的话尚难为之。不过阁下想尝鲜一下Grid的新容貌,下面这个例子就不容错过耶!如阁下所见,配置项什么的都跟Ext 3差别不大。可是那个分组功能,看到没有?不需要写GroupingView了,只是在配置项声明一下就可以了,更简单了。这是体现Ext 4 灵活性的一个地方,还有其他地方呈现Ext 4的新元素,新优点。就好像,普通的Store也可以支持分组了,并入到标准store功能中,用不着继承什么GroupingStore。   Ext.onReady(function() { Ext.regModel('Teams', { fields: ['name', 'sport'] }); var teamStore = new Ext.data.Store({ model: 'Teams', sorters: ['sport','name'], groupField: 'sport', data: [ { name: 'Aaron', sport: 'Table Tennis' }, { name: 'Aaron', sport: 'Football' }, { name: 'Abe', sport: 'Basketball' }, { name: 'Tommy', sport: 'Football' }, { name: 'Tommy', sport: 'Basketball' }, { name: 'Jamie', sport: 'Table Tennis' }, { name: 'Brian', sport: 'Basketball' }, { name: 'Brian', sport: 'Table Tennis' } ] }); var grid = new Ext.grid.GridPanel({ renderTo: Ext.getBody(), store: teamStore, width: 400, height: 300, title: 'Sports Teams', items: [{ features: [{ ftype: 'grouping' }], headers: [{ text: 'Name', flex: 1, dataIndex: 'name' },{ text: 'Sport', dataIndex: 'sport' }] }] }); });
分享到:
评论

相关推荐

    Ext官方中文教程(可打包下载)

    入门 ...Grid组件初学 Grid的数据分页 Ext菜单器件 表单组件初学 表单组件初学(二) Cookie的存储 Ext Grid+JScript ASP+Access教程 Ext 2联动Combos的教程 采用JsonStore的PropertyGrid 关联事件

    extjs-ux, EXT JS 4的一些插件和扩展.zip

    extjs-ux, EXT JS 4的一些插件和扩展 插件和 EXT JS 4扩展 Ext.ux. aceeditor.Panel 演示( 简单): 链接演示( 流 语法): 链接演示:链接论坛:链接 Ext.ux. grid.feature.Tileview 演示:链接

    Ext Js权威指南(.zip.001

    第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中使用...

    Ext+JS高级程序设计.rar

    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...

    Ext JS添加子组件的误区探讨

    在Ext JS的布局系统中,能控制到的是容器的子组件,而对于渲染到容器中一个DIV的Grid,它并不知道在这容器里添加了一个Grid,当调整大小的时候,也就无法去调整Grid的大小了,而这也就是为什么Grid不会随容器的改变...

    Ext Js.rar

    Ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了。 主要包括data、widget、form、grid、dd、menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好。可以自己写扩展,...

    Ext3.0官方实例

    ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了,  主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面对对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名...

    Ext 学习中文手册

    Grid组件的简易分页 53 Grid数据 53 怎么做一个分页的Grid 54 分页栏Toolbar 55 EXT Menu组件 55 创建简易菜单 56 各种Item的类型 57 Item属性 57 在UI中摆放菜单 58 Menu的分配方式: 58 练一练 60 动态添加菜单...

    Ext4.1.0中文API离线版

    资源名称:Ext4.1.0 中文API离线版内容简介:ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架Ext JS具有115多种高性能,预测试和集成的UI组件,包括日历,网格,图表等。Ext JS Grid...

    带时分秒的EXT日期控件

    带动Ext.DateTimePicker设置 * 4,增加时期时间选择器变动时的样式变化功能 * 5,解决GRID中使用时,同列同对象间值影响的问题 * 6,解决原组件,点击today按钮时,无法回到选择器当日界面的问题 */ 另外此控的时分...

    最正宗的ext帮助文档

    ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了, 主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名...

    精通JS脚本之ExtJS框架.part1.rar

    本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...

    EXT简体中文参考手册(PDF&CHM电子档)

    Grid组件的简易分页 53 Grid数据 53 怎么做一个分页的Grid 54 分页栏Toolbar 55 EXT Menu组件 55 创建简易菜单 56 各种Item的类型 57 Item属性 57 在UI中摆放菜单 58 Menu的分配方式: 58 练一练 60 动态添加菜单...

    ExtJS源码分析与开发实例宝典--书中代码

    快速入门部分讲解Ext JS的背景及体系结构,并通过案例实现让 读者快速...深入组件的开 发部分讲解Ext JS组件的原理及各大组件的应用,包括组件模型、容器模型、布局设计、Form组件、 Grid组件、Tree组件及Menu组件。

    EXT 中文帮助手册

    定义数据(Data Definition) 51 步骤二 列模型(Column Model) 52 Grid组件的简易分页 53 Grid数据 53 怎么做一个分页的Grid 54 分页栏Toolbar 55 EXT Menu组件 55 创建简易菜单 56 各种...

    grid插件加载速度测试

    JavaScript表格组件加载速度测试 ● Dojo grid ● jqGrid ● Ext JS grid ● dhtmlxGrid

    JavaScript凌厉开发:ExtJS3详解与实践

    资源名称:JavaScript凌厉开发:Ext JS 3详解与实践内容简介:本书详细...本书包含的内容有Ext.Element.*、事件Observable、Ext组件 MVC原理、Grid/Form/ 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    ext 4.0 好东西

    ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了, 主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名...

    ext 基础教程免费下载

    ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了,  主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名...

Global site tag (gtag.js) - Google Analytics