Datatables Server-side processing

来源:互联网 发布:什么淘宝炒作 编辑:程序博客网 时间:2024/06/05 04:41

参考:
https://www.datatables.net/manual/server-side
http://www.tuicool.com/articles/NBBnum

cdn加载文件

<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/dt-1.10.15/datatables.min.css"/><script type="text/javascript" src="https://cdn.datatables.net/v/dt/dt-1.10.15/datatables.min.js"></script>
//serversidefunction initDataTableServerSide(){    $("#table_id").html("");    $(".spinner").show();    $('#table_id').DataTable({        "language": {            url:'//cdn.datatables.net/plug-ins/1.10.15/i18n/Chinese.json'        },       "scrollX":true,        "order": [[ 7, "desc" ]],       "processing": true,        "serverSide": true,        "ajax": {           url:ctx+"/index/qidian/getServersideDataList",           dataFilter: function(data){                var json = jQuery.parseJSON(data);                json=json.data;                json.draw = json.draw;                json.recordsTotal = json.recordsTotal;                json.recordsFiltered = json.recordsFiltered;                json.data = json.data;                return json; // return JSON string            }       },       "columns": [                      { data: "ip_name" ,title:"名称",orderable: false},                      { data: 'q_author' ,title:"作者",orderable: false},                      { data: 'q_label1' ,title:"label1",orderable: false},                      { data: 'q_label2' ,title:"label2",orderable: false},                      { data: 'q_label3' ,title:"label3",orderable: false},                      { data: 'q_label4' ,title:"label4",orderable: false},                      { data: 'q_label5' ,title:"label5",orderable: false},                      { data: 'q_month_count' ,title:"月票"},                      { data: 'q_month_order_num' ,title:"月票排名" },                      { data: 'q_rec_count' ,title:"周推荐票数" },                      { data: 'q_rec_order_num' ,title:"周推荐票数排名" },                      { data: 'q_score' ,title:"分数" },                      { data: 'q_week_click_num' ,title:"周点击数" },                      { data: 'q_user_count' ,title:"评价人数" },                      { data: 'q_week_rec_num' ,title:"周推荐数" },                      { data: 'q_total_click_count' ,title:"总点击数" },                      { data: 'q_thread_cnt' ,title:"作品讨论数" },                      { data: 'q_month_order_num' ,title:"月票排名" },                      { data: 'source_url' ,title:"来源地址",orderable: false}                  ],         bProcessing: true    });    $(".spinner").hide();}

后端用的jfinal框架

public void getServersideDataList(){        Enumeration<String> paramNames = getParaNames();        /**         * paramNames:         * [draw, columns[0][data], columns[0][name], columns[0][searchable], columns[0][orderable], columns[0][search][value], columns[0][search][regex],          *        columns[1][data], columns[1][name], columns[1][searchable], columns[1][orderable], columns[1][search][value], columns[1][search][regex], ……,          *        order[0][column], order[0][dir], start, length, search[value], search[regex], _]         */        while(paramNames.hasMoreElements()){            String paraName = paramNames.nextElement();            System.out.println("paraName:"+paraName+" paraValue:"+getPara(paraName));        }        String draw = getPara("draw");        String start = getPara("start");        String length = getPara("length");        int pageNumber = Integer.valueOf(start)/Integer.valueOf(length)+1;        StringBuilder select = new StringBuilder(" select * ");        StringBuilder sqlExceptSelect = new StringBuilder(" from T_IP_MATERIAL where source_id = '0' ");        String searchValue = getPara("search[value]");        if(StringUtil.isNotEmpty(searchValue)){        }        String orderColumnNo = getPara("order[0][column]");        if(StringUtil.isNotEmpty(orderColumnNo)){            String orderColumnName = getPara("columns["+orderColumnNo+"][data]");            String orderDir = getPara("order[0][dir]");            sqlExceptSelect.append(" order by cast(" + orderColumnName + " as decimal) " + orderDir);        }        Page<IPMaterialQD> page = IPMaterialQD.getPaginate(pageNumber,Integer.valueOf(length),select.toString(),sqlExceptSelect.toString());        renderSuccess(toJson(page.getList(), page.getTotalRow(),Integer.valueOf(draw)) ,null);    }    public String toJson(List<IPMaterialQD> list,int count,int draw){        String json = null;        String aaData = JsonKit.toJson(list);        json = "{\"draw\":"+draw+",\"recordsTotal\":"+count+",\"recordsFiltered\":"+count+",\"data\":"+aaData+"}";        return json;    }
原创粉丝点击