关于Ext的排序问题,通常涉及到两种方式。sql
A。一种是默认的客户端排序机制,对当前页进行排序。sortable数据库
这种排序模式不用多说,是人都会:服务器
1.能够在Ext.grid.ColumnModel列模式中,设置sortable:false,此列为可排序。blog
var cm = new Ext.grid.ColumnModel([//定义列显示模式
{id: "name",header: "部门名称",dataIndex: 'name',width: 50, sortable:false}, 排序
]);rem
2.整体设置Ext.grid.ColumnModel的全部列的默认排序方式。get
cm.defaultSortable = true;//默认列所有可排序 table
cm.setDefaultSort('name', 'DESC');也可如:按名字倒序后台
B。进行服务器端全局排序方式。remoteSort服务器端
这种排序方式,你们都知道,可是不必定能用好,须要一下几个步骤,少一个都不行。
1.数据集Ext.data.Store中设置参数:remoteSort: true
2.列模式Ext.grid.ColumnModel中须要进行全局排序的列中加入参数:remoteSort: true
3.后台组合数据集的方法中,
经过:String sort= request.getParameter("sort");//要排序的列名--无需定义,ext自动后传
String dir= request.getParameter("dir");//要排序的方式--无需定义,ext自动后传
取数据集的时候,把这两个参数加进去,就爽了。
这时候到前台试试,看看是否是就能够进行全局排序了。
下面是服务器端排序的具体补充:
首先获取这两个值:
String sort= request.getParameter("sort");//要排序的列名--无需定义,ext自动后传
String dir= request.getParameter("dir");//要排序的方式--无需定义,ext自动后传
其中sort对应数据库中的某个字段
dir表示为asc或desc即升序或降序
sql语句就是普通的语句:
select * from user where id>50 order by sort dir