jquery数据表隐藏列

IT技术 javascript jquery datatables
2021-03-17 17:06:15

jquery 数据表插件有没有办法隐藏(和显示)表列?

我想出了如何重新加载表数据:使用fnClearTablefnAddData

但我的问题是,在我的表格视图之一(例如隐藏模式)中,我不想显示某些列。

6个回答

动态隐藏列

以前的答案使用旧的 DataTables 语法。在 v 1.10+ 中,您可以使用column().visible()

var dt = $('#example').DataTable();
//hide the first column
dt.column(0).visible(false);

要隐藏多列,可以使用columns().visible()

var dt = $('#example').DataTable();
//hide the second and third columns
dt.columns([1,2]).visible(false);

这是一个小提琴演示

表初始化时隐藏列

要在表初始化时隐藏列,可以使用columns选项:

$('#example').DataTable( {
    'columns' : [
        null,
        //hide the second column
        {'visible' : false },
        null,
        //hide the fourth column
        {'visible' : false }
    ]
});

对于上述方法,您需要指定null应保持可见且未指定其他列选项的列。或者,您可以使用columnDefs来定位特定列:

$('#example').DataTable( {
    'columnDefs' : [
        //hide the second & fourth column
        { 'visible': false, 'targets': [1,3] }
    ]
});
@Gyrocode.com - 啊哈,是的。我在想动态可见性。我在 init 上添加了有关隐藏列的详细信息。
2021-04-21 17:06:15
回发时如何访问隐藏列值?谢谢
2021-04-23 17:06:15
也可以通过columns.visible选项来完成如果你希望你的回答彻底,我也会提到这一点。
2021-04-26 17:06:15
这是一个很好的更新,但我的意思是选项columns,visible,请参阅datatables.net/reference/option/columns.visible
2021-05-02 17:06:15
这很好,但一个问题是,如果visible 为false,nRow 会忽略编辑/取消时的隐藏列。
2021-05-13 17:06:15

您可以通过以下命令隐藏列:

fnSetColumnVis( 1, false );

其中第一个参数是列的索引,第二个参数是可见性。

通过:http : //www.datatables.net/api - 函数fnSetColumnVis

我真的希望数据表 API 站点将每种方法放在不同的页面上——这让谷歌更容易找到特定的方法。
2021-04-22 17:06:15
@Blazemonger:有锚点,方便访问:datatables.net/api#fnSetColumnVis
2021-05-11 17:06:15
@RobotMess 锚点很适合人类链接,但 Google 搜索结果只会显示在页面顶部。
2021-05-14 17:06:15

如果有人再次来到这里,这对我有用...

"aoColumnDefs": [{ "bVisible": false, "aTargets": [0] }]

您可以在数据表初始化期间定义它

"aoColumns": [{"bVisible": false},null,null,null]
"aoColumns": [{"bVisible": false}] 对我来说已经足够了(没有空值)。
2021-04-24 17:06:15
@Gerry_Gurevich 部分正确。在此示例中,第一列获取属性,"bVisible": false而表中的所有其他列均未传递任何参数。这是因为当您使用时,"aoColumns": [ ... ]您必须发送表中所有列的逗号分隔列表。如果您"aoColumnDefs": [ ... ]改为使用(请参阅@ahaliav_fox 的回答),您只需要声明一个列索引数组来应用该属性。因此,无论是否获取属性,您都不需要声明每一列的状态。
2021-05-18 17:06:15

对于使用服务器端处理并使用隐藏列将数据库值传递到 jQuery 的任何人,我建议使用“sClass”参数。您将能够使用 css display: none 隐藏列,同时仍然能够检索其值。

css:

th.dpass, td.dpass {display: none;}

在数据表初始化中:

"aoColumnDefs": [ { "sClass": "dpass", "aTargets": [ 0 ] } ] // first column in visible columns array gets class "dpass"

//编辑:记住将隐藏的类也添加到你的 thead 单元格中