保留数据表列可见性不可见性

时间:2016-11-03 13:26:31

标签: datatables

我在数据表上显示这五个字段ID,名称,地址,电话和传真。我正在使用列可见性功能,默认情况下,我显示前四列。假设,我将传真列Visible和Phone Column Invisible。现在,如果我刷新页面,我会再次看到相同的四列。我的问题是,我们能否保留这种可见性/隐形性?

感谢。

1 个答案:

答案 0 :(得分:0)

刷新页面?你的意思是重绘数据表页面? (例如,点击列标题以对数据表中的“下一步”进行排序或点击?)

如果是这样,您使用javascript / jquery来修改元素的可见性吗?

这样做最初会起作用 - 但因为数据表并不知道' jquery修改了元素,当它重新绘制表格时(以新的顺序或新页面或其他任何方式),它会将您的更改恢复为它理解表格所处的任何状态。

要让您的更改在重绘过程​​中保持不变,您需要使用datatables api - 以便数据表知道您正在做什么。像这样:

var mytable= $('#mytable').DataTable();
mytable.column( 0 ).visible( false );

但是如果您希望在浏览器中刷新网页之间保持这些更改,则需要设置会话或将这些配置存储在数据库中。

然后,每次请求页面时,您都会检查该数据,并且可以动态决定如何初始化数据表:

$(document).ready( function() {
  $('#example').dataTable( {
    "aoColumnDefs": [
      { "bVisible": false, "aTargets": [ userHiddenColumn ] }
    ] } );
} );