【问题标题】:How to define Columndefs after DataTables initializationDataTables初始化后如何定义Columndefs
【发布时间】:2016-05-19 19:28:22
【问题描述】:

目前我在每个页面中使用 DataTables,像这样单独初始化它们。

 var table = $('#' + '<%= gvReports.ClientID %>').DataTable({
                "responsive": true,
                "bAutoWidth": true,
                "oLanguage": {
                    "sSearch": "Search Table: ",
                    "sSearchPlaceholder": "Search records",
                    "sEmptyTable": "No data available to display"
                },
                "columnDefs": [
                    {
                        "targets": [0],
                        type: 'natural-nohtml'
                    }
                ],
                "sScrollY": "55vh",
                "scrollCollapse": false,
                "pagingType": "full_numbers",
                "lengthMenu": [[25, 50, 100, 150, 200], [25, 50, 100, 150, 200]]
            });

当我尝试创建一个通用 JQuery 方法以在多个地方使用时,columnDef 中的 type 属性无法正常工作

"columnDefs": [
                 {
                     "targets": [0],
                      type: 'natural-nohtml'
                 }
              ],

我使用 NatualSort 插件对数据进行排序,因为“0”列包含字母数字数据。

有没有办法可以动态设置 columnDefs?还是在初始化表后为 Column(0) 设置 ColumnDef 类型? 有点像

table.column("0:visible").Type('natural-nohtml');

任何帮助表示赞赏?我想知道我的想法是否正确?

【问题讨论】:

    标签: datatables datatables-1.10


    【解决方案1】:

    在初始化数据表之后,您无法操作columnDefs。但是,当您基本上只想将任何数据表的第一列的natural-nohtml 设置为type 时,您可以简单地扩展$.fn.dataTable.defaults。在初始化任何数据表之前声明这一点:

    $.extend( true, $.fn.dataTable.defaults, {
      columnDefs: [
        { targets: [0], type: 'natural-nohtml' }
      ]
    } );
    

    这会将任何数据表的第一列设置为输入natural-nohtml

    【讨论】:

    • 感谢您的帮助。我将执行此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    相关资源
    最近更新 更多