zoukankan      html  css  js  c++  java
  • jQuery-DataTables 跨页全选

    https://www.jianshu.com/p/aff95a4727f1

    最近要做一个全选框,想实现全选/多选/任意全不选 功能。因为之前用datatables实现了大部分功能,想直接看有没有合适的接口,结果踩坑踩了一下午。记录一下正确的姿势。

    坑1:版本

    需要的DataTables版本不能太低,好像说不能低于 1.10.6(具体文档找不到了,我用1.10.16是可以的)

    坑2:引入顺序

    select似乎要在datatables之后引入,如下:

        <script type="text/javascript" src="{% static "js/plugins/datatables/jquery.dataTables.1.10.16.min.js" %}"></script>
        <script type="text/javascript" src="{% static "js/plugins/datatables/dataTables.select.min.js" %}"></script>
    

    注意了这两个坑,基本雷就踩得差不多了。下面介绍正确姿势。

    正确姿势

    hello代码

    首先引入js。如坑2所示。
    然后在js中创建table:

    var table = $('#example').DataTable( {
                            //  注意,这里一定要是 DataTAble, 不要写成 dataTable
            dom: 'Bfrtip',
            select: true,
            buttons: [
                {
                    text: 'Select all',
                    action: function () {
                        table.rows().select();
                    }
                },
                {
                    text: 'Select none',
                    action: function () {
                        table.rows().deselect();
                    }
                }
            ]
        } );
    

    这里其实全选的关键并不是buttons,
    而是table.rows().select()。所以你可以单独写一个button来完成这个动作。这样,跨页全选就算完成了。

    设置为多选

    默认情况,select会将DataTable设置成单选,所以如果要多选,需要把select的值设置成'multi',如

    var table = $('#example').DataTable( {
            dom: 'Bfrtip',
            select: 'multi',
            buttons: [
                {
                    text: 'Select all',
                    action: function () {
                        table.rows().select();
                    }
                },
                {
                    text: 'Select none',
                    action: function () {
                        table.rows().deselect();
                    }
                }
            ]
        } );
    

    获取表中数据

    可以通过 table.rows({selected: true}).data()获取表中的数据。以此方法获取的数据是一个list,形如:

    [
    {'name': 'Gourdin', 'race': 'orc'},
    {'name': 'Illidan', 'race': 'elf'},
    ]
    

    设置选中状态

    css可以设置选中状态

    .dataTable tbody tr.selected td {background-color: #78dbff;}
    

    References:
    https://datatables.net/extensions/select/examples/api/select.html
    https://datatables.net/extensions/select/examples/api/get.html



    作者:打不shi的流云
    链接:https://www.jianshu.com/p/aff95a4727f1
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    oculus按键大全
    10 soundJs 初体验
    09 获取服务器时间
    08 基本数据类型转换
    07 如果再使用animateCC2018或者苹果系统使用animate时出现Uncaught ReferenceError: lib is not defined的错误
    AS3.0和php数据交互POST方式
    06 显示fps帧频
    05 js利用ajax向服务器发送请求并返回json值
    04 ajax执行php并传递参数
    03php拉取服务器信息并生成json
  • 原文地址:https://www.cnblogs.com/linus-tan/p/14750460.html
Copyright © 2011-2022 走看看