【问题标题】:Disable Ordering Columns after initialization (init complete) in datatables在数据表中初始化(初始化完成)后禁用排序列
【发布时间】:2015-02-17 02:29:45
【问题描述】:

绘制数据表后,我将禁用用户订购的可能性。 我有一个数据表,我会订购数据并消除用户手动订购数据的可能性。 我该怎么做?

我使用了以下代码:

table = $('#tbl-1').DataTable({
            "info": false,
            "searching": true,
            "paging": false,
            "iDisplayLength": 25,
            "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "Tutti"]],
            "language": {"url": "include/it_IT.txt"},
            "order": [[1,"desc"]],              
            //"ordering": false,
            //"orderFixed": {"pre": [ 1, "desc" ]},                             
             "fnInitComplete": function(oSettings, json) {
                    //alert( 'DataTables has finished its initialisation.' );
                    this.fnFilter("<?php echo $_POST['search'];?>");                        
                  },
            }).on('init.dt', function (e, settings, data) {
                wrappa(); //after custom function
            });

【问题讨论】:

标签: javascript jquery datatables jquery-datatables


【解决方案1】:

旧帖子,但仍未由 dt api 处理。如果要暂时禁用排序,则删除事件将不起作用。而是使用 jquery 在每个 th 上添加和删除一个类,并在此类中指定“pointer-events: none”。

【讨论】:

    【解决方案2】:

    由于API没有办法做到这一点,我建议以下方法

    首先声明你的表

    var table = $('#myTable').DataTable();
    

    重新初始化您的数据表以禁用排序

    //Destroy your table before
    table.destroy();
    $('#myTable').dataTable( {
      "ordering": false
    } );
    

    参考: https://datatables.net/reference/option/ordering

    【讨论】:

    • 这是不正确的,因为我需要第一次订购,并且只有在订购后我必须禁用..
    • 如果你在 OP 想要阻止用户排序的列上设置ordering : false,他也会失去自己的排序,例如"order": [[1,"desc"]]
    • 这将完全禁用排序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2023-03-13
    相关资源
    最近更新 更多