Ext普通排序-全局排序(转)
?
关于Ext的排序问题,一般涉及到两种方式。
?
A。一种是默认的客户端排序机制,对当前页进行排序。sortable
?? 这种排序模式不用多说,是人都会:
???? 1.可以在Ext.grid.ColumnModel列模式中,设置sortable:true,此列为可排序。
???? ?var cm = new Ext.grid.ColumnModel([//定义列显示模式
?????????{id: "name",header: "部门名称",dataIndex: 'name',width: 50,? sortable:true?},???????????
????? ]);
???? 2.总体设置Ext.grid.ColumnModel的所有列的默认排序方式。
????? ?cm.defaultSortable = true;//默认列全部可排序?????
? ???? cm.setDefaultSort('name', 'DESC');也可如:按名字倒序
?
B。进行服务器端全局排序方式。remoteSort
???这种排序方式,大家都知道,但是不一定能用好,需要一下几个步骤,少一个都不行。
???1.数据集Ext.data.Store中设置参数:remoteSort: true
????? 指定默认排序时,store只需添加配置一项即可,
sortInfo: { field: 'fieldName', direction: 'ASC' // or 'DESC' (case sensitive for local sorting)}
???2.列模式Ext.grid.ColumnModel中需要进行全局排序的列中加入参数:remoteSort: true
(经过测试,只有在Store设置才能生效, ColumnModel?中不起作用,测试环境为Extjs3.4 !)
???3.后台组合数据集的方法中,
??? 通过:String sort= request.getParameter("sort");//要排序的列名--无需定义,ext自动后传
????????? String dir= request.getParameter("dir");//要排序的方式--无需定义,ext自动后传
????取数据集的时候,把这两个参数加进去,就爽了。
这时候到前台试试,看看是不是就可以进行全局排序了。