选择模型
当单击某一单元格时,需要被选中的为整行,则使用RowSelectionModel----行选择模型。行选择模型默认是支持多选的,如只能单选,需要设置singleSelect参数。

2

3

4

5

6

表格视图---Ext.grid.GridView
Ext的表格控件都遵循MVC模型,Ext.data.Store可看做Model模型,Ext.grid.GridPanel中设置各种监听器可看做Controller控制器,而Ext.grid.GridView对应的就是View视图。通常情况下,不需要自行创建Ext.grid.GridView的实例,GridPanel会自行生成对应的实例,并可通过getView()函数来获取当前表格使用的视图实例。

2

3

当然,我们也可以为GridView设置初始参数:

2

3

4

5

6

7

后台排序
Grid的后台排序只需在配置Ext.data.Store的时候配置remoteSort:true即可,这样下次排序的时候,Store会向后台提交两个参数:sort和dir。sort表示需要排序的字段,dir表示升序或降序(ASC/DESC)。
属性表格控件----PropertyGrid

2

3

4

5

6

7

8

9

10

11

12

13

上述代码就很容易地构建出一个可编辑的Grid,且各个字段的编辑器都是对应的。如果需要只能看不能动的PropertyGrid,则:

2

3

4

如果需要强制对name列排序,则需要修改Ext.grid.PropertyGrid.prototype.initComponent源码,将store.store.sort('name','ASC')注释掉即可。
下面示例了自定义编辑器的代码:

2

3

4

5

6

7

8

9

10

11

12

分组表格控件----Group

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

上述示例需要关注的是groupField,确定通过哪一项分组。令人困惑的是,GroupingStore要求必须设置sortInfo。同样,也可以通过grid.getView()来获取到Ext.grid.GroupingView的实例。
可拖放的表格

2

3

4

5

6

7

8

Resizable必须放在render之后,否则会出现问题。参数的构成:
第一个参数'grid':就是说这个可改变大小的条是在div id="grid"这个元素上起作用。
wrap:true 这个参数会在构造Resizable时自动在指定id的外部包裹一层div。
minHeight:100 限制改变大小的最小高度。
pinned:true pinned就是显示蓝色细线和上面的三个小点,突出提示。如果为true,则一直显示;false则只当鼠标放到上面时才出现。
handles:'s' 's'即'south'。Ext中的东南西北对应上下左右,用来设置拖动的方向。
在同一个表格里拖放
只需将grid的属性enableDragDrop设置为true,表格就支持了拖拽。但这样还不能实现真正意义上的拖拽,总会显示一个禁止放下的图标。这是因为Grid里面没有设置DropTarget,就是放置被拖动数据的目标。对grid.container进行如下设置,让表格的容器成为DropTarget:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Grid与右键菜单
Grid提供了4个与右键菜单有关的事件:
contextmenu : (Ext.EventObject e): 全局性的右键事件
cellcontextmenu:(Grid this,Number rowIndex, Number cellIndex,Ext.EventObject e): 单元格的右键事件
rowcontextmenu:(Grid this,Number rowIndex, Ext.EventObject e): 行上的右键事件
headercontextmenu:(Grid this,Number colIndex, Ext.EventObject e): 表头的右键事件
原文地址:http://www.blogjava.net/zhengzhili/archive/2009/10/21/299161.html
转载于:https://blog.51cto.com/shuimomo/858868