关于Ext的排序问题,一般涉及到两种方式。

A。一种是默认的客户端排序机制,对当前页进行排序。sortable

这种排序模式不用多说,是人都会:

1.可以在Ext.grid.ColumnModel列模式中,设置sortable:false,此列为可排序。

var cm = new Ext.grid.ColumnModel([//定义列显示模式          {id: "name",header: "部门名称",dataIndex: 'name',width: 50, sortable:false},

]);

2.总体设置Ext.grid.ColumnModel的所有列的默认排序方式。

cm.defaultSortable = true;//默认列全部可排序

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

4.后台排序

在默认的情况下,Grid只能对当前页的数据进行排序,如果对所有的数据排序,则需要将排序信息提交到后台,由后台将信息组装到SQL里,然后再由后台将处理好的数据返回给前台。     var store = new Ext.data.Store({         proxy: new Ext.data.HttpProxy({url:'09_01.jsp'}),         reader: new Ext.data.JsonReader({             totalProperty: 'totalProperty',             root: 'root'         }, [             {name: 'id'},             {name: 'name'},             {name: 'descn'}         ]),         remoteSort: true     }); 其中remoteSort: true表示允许后台排序,这样在排序时就会有变化,不会立即显示出排序的结果,而是向后台提交两个参数,分别是sort和dir,表示要排序的字段与升序或降序。

jsp则进行相应的处理 String start = request.getParameter("start"); String limit = request.getParameter("limit");

String sort = request.getParameter("sort"); String dir = request.getParameter("dir"); 再进行数据库分页,并返回json格式的分页数据。

String sort= request.getParameter("sort");

if(sort != null){
       String property = "";
       String direction = "";
       JSONArray myJsonArray = new JSONArray(sort);
       for(int i=0 ; i < myJsonArray.length() ;i++){
        JSONObject myjObject = myJsonArray.getJSONObject(i);
        property = myjObject.getString("property");
        direction = myjObject.getString("direction");
       }
       String sql="user_basic order by "+property+" "+direction+" ";

Ext列表展现--普通排序sortable--全局排序remoteSort(EXTJS 全局排序问题)的更多相关文章

  1. laravel-admin列表排序在使用了$grid->model()->latest()后$grid其它加上sortable()可排序的列在排序时不起作用

    laravel-admin这个基于laravel的后台框架,简单易用,$grid的默认排序是主键升序的排列方式,但在使用了`$grid->model()->latest();`自定义默认排 ...

  2. php sortable 动态排序

    php sortable 动态排序未分页版.php 预览图: <?php mysql_connect("localhost","root","r ...

  3. Hadoop对文本文件的快速全局排序

    一.背景 Hadoop中实现了用于全局排序的InputSampler类和TotalOrderPartitioner类,调用示例是org.apache.hadoop.examples.Sort. 但是当 ...

  4. MapReduce TotalOrderPartitioner 全局排序

    我们知道Mapreduce框架在feed数据给reducer之前会对map output key排序,这种排序机制保证了每一个reducer局部有序,hadoop 默认的partitioner是Has ...

  5. 三种方法实现Hadoop(MapReduce)全局排序(1)

    我们可能会有些需求要求MapReduce的输出全局有序,这里说的有序是指Key全局有序.但是我们知道,MapReduce默认只是保证同一个分区内的Key是有序的,但是不保证全局有序.基于此,本文提供三 ...

  6. Mapreduce的排序(全局排序、分区加排序、Combiner优化)

    一.MR排序的分类 1.部分排序:MR会根据自己输出记录的KV对数据进行排序,保证输出到每一个文件内存都是经过排序的: 2.全局排序: 3.辅助排序:再第一次排序后经过分区再排序一次: 4.二次排序: ...

  7. java List递归排序,传统方式和java8 Stream优化递归,无序的列表按照父级关系进行排序(两种排序类型)

    当有一个List列表是无序的,List中的数据有parentid进行关联,通过java排序成两种排序类型: 所用的测试列表最顶级无parentid,若为特殊值,修改下判断方法即可. 第一种排序:按照树 ...

  8. 大数据mapreduce全局排序top-N之python实现

    a.txt.b.txt文件如下: a.txt hadoop hadoop hadoop hadoop hadoop hadoop hadoop hadoop hadoop hadoop hadoop ...

  9. 一起学Hadoop——TotalOrderPartitioner类实现全局排序

    Hadoop排序,从大的范围来说有两种排序,一种是按照key排序,一种是按照value排序.如果按照value排序,只需在map函数中将key和value对调,然后在reduce函数中在对调回去.从小 ...

随机推荐

  1. Dropbox 有哪些鲜为人知的使用技巧?

    作者:Feeng链接:http://www.zhihu.com/question/20104959/answer/13991578来源:知乎著作权归作者所有,转载请联系作者获得授权. 原文:The B ...

  2. (转)java性能调优

    本文转自:http://blog.csdn.net/lilu_leo/article/details/8115612 一.类和对象使用技巧 1.尽量少用new生成新对象 用new创建类的实例时,构造雨 ...

  3. shell编程基础(2)---&&与||

    shell 编程重要的应用就是管理系统,对于管理系统中成千上万的程序而言,查询某个文件名是否存在,并且获取该文件名所指代文件基本信息是系统管理员的基本任务.shell命令可以很轻松的完成这项任务. # ...

  4. centos 安装openssl 以及库文件

    yum install openssl yum install openssl-devel

  5. 即时通信Spark安装和配置

    spark:Cross-platform real-time collaboration client optimized for business and organizations.Spark i ...

  6. 简化PHP开发的10个工具

    本文介绍了可以帮助简化 PHP 开发的11个项目,包括框架,类库,工具,代码. 1. CakePHP Development Framework CakePHP 是一个 PHP 的快速开发框架.它提供 ...

  7. linux中proc文件系统 -- ldd3读书笔记

    1./proc 文件系统概述 /proc 文件系统是由软件创建,被内核用来向外界报告信息的一个文件系统./proc 下面的每一个文件都和一个内核函数相关联,当文件的被读取时,与之对应的内核函数用于产生 ...

  8. IOSSelector的用法

    1.首先,@selector 里面的方法不能传参数..不要相信网上的..都是复制粘贴的.2.分三步走:1.设置tag.2.设置btn的调用方法.3.使用参数2.看示例代码把..   UIButton ...

  9. hdu 3359 Kind of a Blur (高斯消元 浮点型)

    题目链接 题意: H * W (W,H <= 10) 的矩阵A的某个元素A[i][j],从它出发到其他点的曼哈顿距离小于等于D的所有值的和S[i][j]除上可达点的数目,构成了矩阵B.给定矩阵B ...

  10. sql server2005内存过高释放方法

    最近做了一个网站qq.115sou.com,在服务器中SQL Server占用内存非常高,加内存后,SQL Server又吃掉新加的内存,好像内存永远不够用一样,怎么办? 其实这并不一定是由于SQL ...