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