dataTables 使用小细节

1.dataTables 日期查询

 var row_content = []; //暂存表格的行内容
         var rows=[];    //暂存表格行索引

/*
*将日期缓存添加,清除上一次日期搜索的缓存
*/

  if(row_content.length>0){      
    table.rows.add(row_content).draw();
    row_content=[];
    rows=[];
  }

  /*第六列按日期排序*/
  table.column(5).data().each(function (value, index) {
    var date = new Date(value.substring(0,10));    //获得每列的日期
    if(date<beginHour||date>endHour){        //日期与开始日期和结束日期比较
    row_content.push(table.rows().data()[index]);   //不合适的日期数据加入缓存
    table.rows().nodes().to$().eq(index).addClass("del_row"); //不合适的添加标记
    rows.push(index);
  }

});
  table.rows('.del_row').remove().draw();  //清除不合适的日期

  核心思想:先用table.column().data()取出对应列的信息进行遍历;

       遍历时转化为date对象进行比较,不符合的分别记录index和值;

       遍历完成用 table.rows().remove()移除,进行重绘,

       再次查询时 使用table.rows.add()添加并重绘。

2.对搜索后的结果进行统计

table1.on('draw.dt',function (e,setting) {

                //获取查询结果显示的行 的数组
        var tableTr = setting.aiDisplay;

                //获取3,4,6列的数据 
        var column2 = table1.column(2).data();
        var column3 = table1.column(3).data();
        var column5 = table1.column(5).data();
        
        var total_show = 0,total_click=0,total_profit=0; 

        //计算总数 (先检测是否有数据)
        if($(".table1 .dataTables_empty").length ==0){                                                      
            for(var i=0,len=tableTr.length;i<len;i++){
                total_show += column2[tableTr[i]] ;
                total_click += column3[tableTr[i]] ;
                total_profit += column5[tableTr[i]] ;
            }
        }        
        $('.total_show').html(total_show);
        $('.total_click').html(total_click);
        $('.total_profit').html(total_profit);
            
});                    


2.改变语言

(document).ready(function() {  
$('#example').dataTable( {  
"oLanguage": {  
"sLengthMenu": "每页显示 _MENU_ 条记录",  
"sZeroRecords": "抱歉, 没有找到",  
"sInfo": "从 _START_ 到 _END_ /共 _TOTAL_ 条数据",  
"sInfoEmpty": "没有数据",  
"sInfoFiltered": "(从 _MAX_ 条数据中检索)",  
"oPaginate": {  
"sFirst": "首页",  
"sPrevious": "前一页",  
"sNext": "后一页",  
"sLast": "尾页"  
},  
"sZeroRecords": "没有检索到数据",  
"sProcessing": "<img src='./loading.gif' />"  
}  
} );  
} );  

3.自定义各种属性

----------也可以自己定义各属性:
<script type="text/javascript" language="javascript">
        $(document).ready(function() {
            $("#example").dataTable({
//                "bPaginate": true, //开关,是否显示分页器
//                "bInfo": true, //开关,是否显示表格的一些信息
//                "bFilter": true, //开关,是否启用客户端过滤器
//                "sDom": "<>lfrtip<>",
//                "bAutoWith": false,
//                "bDeferRender": false,
//                "bJQueryUI": false, //开关,是否启用JQueryUI风格
//                "bLengthChange": true, //开关,是否显示每页大小的下拉框
//                "bProcessing": true,
//                "bScrollInfinite": false,
//                "sScrollY": "800px", //是否开启垂直滚动,以及指定滚动区域大小,可设值:'disabled','2000px'
//                "bSort": true, //开关,是否启用各列具有按列排序的功能
//                "bSortClasses": true,
//                "bStateSave": false, //开关,是否打开客户端状态记录功能。这个数据是记录在cookies中的,打开了这个记录后,即使刷新一次页面,或重新打开浏览器,之前的状态都是保存下来的- ------当值为true时aoColumnDefs不能隐藏列
//                "sScrollX": "50%", //是否开启水平滚动,以及指定滚动区域大小,可设值:'disabled','2000%'
//                "aaSorting": [[0, "asc"]],
//                "aoColumnDefs": [{ "bVisible": false, "aTargets": [0]}]//隐藏列
//                "sDom": '<"H"if>t<"F"if>',
                "bAutoWidth": false, //自适应宽度
                "aaSorting": [[1, "asc"]],
                "sPaginationType": "full_numbers",
                

            });
        });
    </script>

4.定义每页显示数量

$(document).ready(function() {
$('#example').dataTable( {
"aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
} );
} );

 5.禁用某列

$('#data-list').dataTable({
             columnDefs:[{
                 orderable:false,//禁用排序
                 targets:[0,4]   //指定的列
             }]
         });
原文地址:https://www.cnblogs.com/hjsblogs/p/5557315.html