数据表ColVis显示/隐藏错误数据

时间:2015-04-27 20:26:41

标签: jquery jquery-datatables

我的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,并且完成了类似的工作。但问题在于具体问题。

我还有什么额外的东西。

  1. 我还添加了行分组,我删除它并检查没有发生任何事情,似乎没有创建问题。
  2. 我有多个标题行,我已经完全删除了,似乎也不是问题。
  3. 这些是我的数据表设置。

    //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 +

2 个答案:

答案 0 :(得分:1)

对于任何仍然感兴趣的人,我都有完全相同的问题,而且似乎是由&#34;可见&#34; (或&#34; bVisible&#34;匈牙利表示法)参数作为整数(1或0)发送。当我在后端将它转换为布尔值时,问题就消失了。我希望这会有所帮助。

答案 1 :(得分:0)

在点击和试用期间,我发现使用以下方法解决了这个问题:

new $.fn.dataTable.FixedColumns( odata );

这行代码应在数据表初始化后写入。