我的datatable colvis插件有一个非常罕见的问题。当我隐藏然后从datatable的show / hide按钮显示datatable列时,表体中的数据会被放错位置。
示例:
表格通常如此。其中 head 是网格的标题, data 是网格中的相应数据。
| head1 | head2 | head3 | head4 |
| data1 | data2 | data3 | data4 |
| data1 | data2 | data3 | data4 |
| data1 | data2 | data3 | data4 |
现在我使用colviz的显示/隐藏按钮隐藏 head1 列
| head2 | head3 | head4 |
| data2 | data3 | data4 |
| data2 | data3 | data4 |
| data2 | data3 | data4 |
好的,运行正常,现在我再次看到colvis的 head1 列表单显示/隐藏按钮
| head1 | head2 | head3 | head4 |
| data2 | data3 | data4 | data1 |
| data2 | data3 | data4 | data1 |
| data2 | data3 | data4 | data1 |
head1位于正确的位置,但其数据错位到右端,而其他列数据错位到左侧。 我在很多地方都使用了colvis,并且完成了类似的工作。但问题在于具体问题。
我还有什么额外的东西。
这些是我的数据表设置。
//Settings for datatables
var extensions = {
"sFilter": "dataTables_filter",
"sLength": "dataTables_length"
}
// Used when bJQueryUI is false
$.extend($.fn.dataTableExt.oStdClasses, extensions);
// Used when bJQueryUI is true
$.extend($.fn.dataTableExt.oJUIClasses, extensions);
odata = $('#grid').dataTable({
"sDom":'C<"clear">Rlfrtip',
"iDisplayLength": 50,
//"scrollX": true,
"aLengthMenu": [
[ 50, 100,150, -1],
[ 50, 100,150, "All"]
],
"sPaginationType": "full_numbers",
"oLanguage": {
"sSearch": " ",
"sZeroRecords":"No Records found, try changing the date range",
"oPaginate": {
"sLast": ">>",
"sFirst":"<<",
"sNext" : ">",
"sPrevious" : "<"
}
},
"oColVis": {
"buttonText": "Header",
"aiExclude": [0,1],
groups: [
{
title: "All",
columns: [3,4,5,6,7,8,9,10,11,12,13]
}]
},
"aoColumnDefs": [
{ "bSortable": false, "aTargets":[0,1] },
{ "bVisible" : false, "aTargets":[0,1,2] }
]
});
额外备注:我有24列在网格中工作,拉入的数据量平均为2000-10000 +
答案 0 :(得分:1)
对于任何仍然感兴趣的人,我都有完全相同的问题,而且似乎是由&#34;可见&#34; (或&#34; bVisible&#34;匈牙利表示法)参数作为整数(1或0)发送。当我在后端将它转换为布尔值时,问题就消失了。我希望这会有所帮助。
答案 1 :(得分:0)
在点击和试用期间,我发现使用以下方法解决了这个问题:
new $.fn.dataTable.FixedColumns( odata );
这行代码应在数据表初始化后写入。