不能在jquery datatable中隐藏列,显示TypeError: table.column不是一个函数。

问题描述 投票:2回答:3

我使用jQuery的datatables来显示我的记录的网格视图。

我把列的showhide api引用自 此处.

按照定义,我试图在我的项目中使用它和所有的CSS & JS文件。

当我运行它时,它显示我的错误。

TypeError: table.column is not a function

我的jquery是这样的。

    $(document).ready(function() {
    var table = $('.dataTables-example').dataTable({"scrollX": true});

    $('a.toggle-vis').on( 'click', function (e) {
    e.preventDefault();
    var column = table.column($(this).attr('data-column') );

    column.visible( ! column.visible() );
} );
});

是否有什么我缺少什么?

jquery-datatables
3个回答
3
投票

在这一行中,你调用的是1.9或以前的datatables。

var table = $('.dataTables-example').dataTable({"scrollX": true});

把这个改成:

var table = $('.dataTables-example').DataTable({"scrollX": true});

注意大写的 DDataTable. 你需要这样才能调用数据集1.10+,并使用它的功能,如 column(DT) 这在以前的版本中是不存在的。

例如,请看这个。https:/datatables.netmanualapi#Accessing-theAPI。


0
投票

你或许也需要为datatable v1.10.0以上的版本修改这个。

var column = table.api().column( $(this).attr('data-column') );

0
投票

那些在datatable版本中遇到类似问题的人。1.9.* 可以做

// column
    var ColNum = $(this).attr('data-column');

    // Define
    var bVis = table.fnSettings().aoColumns[ColNum].bVisible;

    // Toggle
    table.fnSetColumnVis(ColNum, bVis ? false : true);

而不是

var column = table.column($(this).attr('data-column') );

column.visible( ! column.visible() );
© www.soinside.com 2019 - 2024. All rights reserved.