Ext.Grid详解.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ext.Grid详解

Ext.Grid详解 首先,一个表格应该有列定义,即定义表头ColumnModel: // 定义一个ColumnModel,表头中有四列 var cm = new Ext.grid.ColumnModel([ ???? {header:编号,dataIndex:id}, ???? {header:性别,dataIndex:sex}, ???? {header:名称,dataIndex:name}, ???? {header:描述,dataIndex:descn} ]); cm.defaultSortable = true; ??? 该ColumnModel定义了表格的四个列,其每列的名称和对应的数据键。请注意defaultSortable属性,即为每个列都安上一个可以排序的功能。如果只想某些列举有该功能,可以设置: {header:编号,dataIndex:id,Sortable:true}, 现在就来看看这个Ext.data.Store是如何转换三种数据的。 1.二维数组: // ArrayData var data = [ ???? [1,male,name1,descn1], ???? [2,male,name1,descn2], ???? [3,male,name3,descn3], ???? [4,male,name4,descn4], ???? [5,male,name5,descn5] ]; // ArrayReader var ds = new Ext.data.Store({ ???? proxy: new Ext.data.MemoryProxy(data), ???? reader: new Ext.data.ArrayReader({}, [ ??????? {name: id,mapping: 0}, ???????? {name: sex,mapping: 1}, ???????? {name: name,mapping: 2}, ???????? {name: descn,mapping: 3} ???? ]) }); ds.load(); ds要对应两个部分:proxy和xy告诉我们从哪里获得数据,reader告诉我们如何解析这个数据。 现在用的是Ext.data.MemoryProxy,它将内存中的数据data作为参数传递。Ext.data.ArrayReader专门用来解析数组,并且告诉我们它会按照定义的规范进行解析,每行按顺序读取四个数据,第一个叫id,第二个叫sex,第三个叫name,第四个descn。这些是跟cm定义中的dataIndex对应的。这样cm就知道哪列应该显示那条数据了。 mapping属性用于标记data中的读取后的数据与标头的映射关系,一般是不用设置的。但如果我们想让sex的数据中name栏中出现,可以设置mapping值。即id的mapping为2,后者为0。 记得要执行一次ds.load(),对数据进行初始化。 数据的显示显得非常简单: HTML文件: div id=grid/div JS文件: var grid = new Ext.grid.GridPanel({ ???? el: grid, ???? ds: ds, ???? cm: cm }); grid.render(); 其显示结果为: ? 2.如何在表格中添加CheckBox呢? var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid.ColumnModel([ ??? new Ext.grid.RowNumberer(),//自动行号 ??? sm,//添加的地方 ??? {header:编号,dataIndex:id}, ??? {header:性别,dataIndex:sex}, ??? {header:名称,dataIndex:name}, ??? {header:描述,dataIndex:descn} ]); var grid = new Ext.grid.GridPanel({ ??? el: grid3, ??? ds: ds, ??? cm: cm, ??? sm: sm,//添加的地方 ??? title: HelloWorld }); ? 3. 如何做Grid上触发事件呢? 下面是一个cellclick事件 grid.addListener(cellclick, cellclick); function cellclick(grid, rowIndex, columnIndex, e) { ??? var record = grid.getStore().getAt(rowIndex);??

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档