zoukankan      html  css  js  c++  java
  • jQuery-DataTables插件

    下载DataTables插件
    HTML部分:
        1.自定义搜索框
        物料名称:<input type="text" id="ma_name" >数量:<input type="text" id="min" >——<input type="text" id="max" >

        2.定义table,使用js生成DataTable
        <table id="example" class="display" cellspacing="0" width="100%">
            <thead>
            <tr>
                <th>物料名称</th>
                <th>数量</th>
                <th>日期</th>
                <th>物料是否齐全</th>
                <th>操作</th>
            </tr>
            </thead>
        </table>
    js部分:
        var table=null;
        //自定义过滤功能,将在第某列中搜索两个值之间的数据
        $.fn.dataTable.ext.search.push(
            function( settings, data, dataIndex ) {
                var min = parseInt( $('#min').val(), 10 );//10进制数
                var max = parseInt( $('#max').val(), 10 );
                var ma_num = parseFloat( data[1] ) || 0; // use data for the ma_num column
        
                if ( ( isNaN( min ) && isNaN( max ) ) || ( isNaN( min ) && ma_num <= max ) || ( min <= ma_num && isNaN( max ) ) ||( min <= ma_num && ma_num <= max ) ){
                    return true;
                }
                return false;
            }
        );
        
        //日期处理
        Date.prototype.Format = function (fmt) {
            var o = {
                "M+": this.getMonth() + 1, //月份
                "d+": this.getDate(), //日
                "h+": this.getHours(), //小时
                "m+": this.getMinutes(), //分
                "s+": this.getSeconds(), //秒
                "q+": Math.floor((this.getMonth() + 3) / 3), //季度
                "S": this.getMilliseconds() //毫秒
            };
           if (/(y+)/.test(fmt)) {
               fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
           }
           for (var k in o) {
               if (new RegExp("(" + k + ")").test(fmt)) {
                   fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
               }
           }
           return fmt;
        }
        
        $(function () {
            //table模块
            table=$('#example').DataTable({
                "serverSide": true,//设置服务器端实现分页
                "searching": false,//关闭自动搜索功能
                "ajax": {
                    "url":"${basePath}/wa/wm/listMateriel?t=" + Math.random(),
                    "type": "POST",
                    "data": function(d) {//传递服务器端数据
                           d.pageNum = d.start/d.length+1;
                           d.pageSize = d.length;
                           d.sortSql = d.columns[d.order[0]["column"]].data+" "+d.order[0]["dir"];//ma_senddate desc
                           d.ma_name=$("#ma_name").val();//获取自定义搜索框值
                        d.num_min=$("#num_min").val();
                        d.num_max=$("#num_max").val();
                    }
                },
                "oLanguage": { // 国际化配置
                    "sProcessing": "正在获取数据,请稍后...",
                    "sLengthMenu": "显示 _MENU_ 条",
                    "sZeroRecords": "没有找到数据",
                    "sInfo": "从 _START_ 到  _END_ 条记录 总记录数为 _TOTAL_ 条",
                    "sInfoEmpty": "记录数为0",
                    "sInfoFiltered": "(全部记录数 _MAX_ 条)",
                    "sInfoPostFix": "",
                    "sSearch": "配件名称搜索",
                    "sUrl": "",
                    "oPaginate": {
                        "sFirst": "第一页",
                        "sPrevious": "上一页",
                        "sNext": "下一页",
                        "sLast": "最后一页"
                    }
                },
                "columns": [{
                    "data": "ma_name"
                },{
                    "data": "ma_num"
                },{
                    "data": "ma_date",
                    render: function(data) {
                        if(''!=data && null !=data){
                            return (new Date(data)).Format("yyyy-MM-dd");
                        }else{//数据没有时手动设置空,否则显示‘1970-01-01’
                            return '';
                        }
                     }
                },{
                    "data": "ppFull",//接收值显示多选框
                    render : function(data){
                        if(1==data){
                            return ("<input type='checkbox' checked disabled>");
                        }else{
                            return ("<input type='checkbox' disabled>");
                        }
                    }
                },{
                    "data": function(obj){//接收json中status和id值
                        if(4 == obj.status){
                            return "<a href='#' onclick='aaa(""+obj.id+"");'>发货</a>";
                        }else{
                            return "<a href='#' onclick='bbb(""+obj.id+"");'>收货</a>";
                        }
                    }

                }],

         //默认按照第3列倒序排序
                "aaSorting": [
                    [2, "desc" ]  
                ],
                columnDefs: [{
                    "sortable":false,"targets":[4]//第5列不参加排序
                }]

            });
            //自定义搜索框监听器,刷新页面数据
            $('#ma_name,#min,#max').keyup(function() {
                table.ajax.reload( null, true );
            });
        });

    function render( data, type, row, meta ){}

    data:当前cell的值(基于 columns.dataOption

    type:数据类型(filterdisplaytypesort

    row:当前一整条数据,可以取得本条数据任何参数

    meta:objectType

    注:从 1.10.1版开始: 一个对象包含了单元格的附加信息. 对象包含如下属性:

    如果使用render动态创建标签元素,此标签的监听事件应使用live();例如:$('.regName').live('dblclick',function(){});

  • 相关阅读:
    STM32 串口DMA方式接收(转)
    STM32 串口功能 库函数 详解和DMA 串口高级运用(转载)
    内存泄露调试心得
    Android 5.0 5.1 webview 闪退问题
    ios 接入微信开发 新版
    ios 获取app版本号
    ios alamofire4.x网络框架url 中文问题
    微服务监控druid sql
    kotlin 单例模式
    mysql 数据库保存 微信分享时不能换行
  • 原文地址:https://www.cnblogs.com/god-monk/p/6439219.html
Copyright © 2011-2022 走看看