• Ext列表展现--普通排序sortable--全局排序remoteSort(EXTJS 全局排序问题)


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

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

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

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

          var cm = new Ext.grid.ColumnModel([//定义列显示模式          {id: "name",header: "部门名称",dataIndex: 'name', 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+" ";

  • 相关阅读:
    Linux NFS服务器的安装与配置
    mysql 批量更新的四种方法
    解决 RHEL 7/ CentOS 7/Fedora 出现Unit iptables.service failed to load
    linux 搭建svn
    MYSQL的慢查询两个方法
    Apache 配置虚拟主机三种方式
    MYSQL explain详解
    php操作memcache的使用【转】
    PHPExcel中open_basedir restriction in effect的解决方法
    微信浏览器禁止app下载链接的两种处理方法
  • 原文地址:https://www.cnblogs.com/zbl3033/p/3546202.html
Copyright © 2020-2023  润新知