gpt4 book ai didi

jQuery DataTablesfixedColumns 动态删除固定列

转载 作者:行者123 更新时间:2023-11-30 23:59:19 27 4
gpt4 key购买 nike

我正在使用fixedColumns我的插件DataTables成分。我希望允许用户从表标题切换固定列。

创建固定列非常简单:

this.table.fixedColumns = new $.fn.dataTable.FixedColumns(this.table, {
iLeftColumns: index + 1
});

我想知道,如何更改创建的fixedColumns,或者如果不能,情况似乎如此,因为我尝试更新iLeftColumns选项并执行fnUpdate但没有效果:

this.table.fixedColumns.s.iLeftColumns = 0;
this.table.fixedColumns.fnUpdate();

最佳答案

正如上面 dykstrad 所回答的那样,要更改固定的列数,您可以使用 iLeftColumns 设置,如下所示:

var fixedColumns = new $.fn.dataTable.FixedColumns(this.table, {
iLeftColumns: 1
});
fixedColumns.s.iLeftColumns = 3;
fixedColumns.fnRedrawLayout();

但是用这种方法删除固定列是不可能的,因为你需要隐藏覆盖插件生成的实例或一起销毁实例,我决定销毁它,所以我用这个扩展了插件:

$.fn.dataTable.FixedColumns.prototype.destroy = function(){
var nodes = ['body', 'footer', 'header'];

//remove the cloned nodes
for(var i = 0, l = nodes.length; i < l; i++){
if(this.dom.clone.left[nodes[i]]){
this.dom.clone.left[nodes[i]].parentNode.removeChild(this.dom.clone.left[nodes[i]]);
}
if(this.dom.clone.right[nodes[i]]){
this.dom.clone.right[nodes[i]].parentNode.removeChild(this.dom.clone.right[nodes[i]]);
}
}

//remove event handlers
$(this.s.dt.nTable).off( 'column-sizing.dt.DTFC destroy.dt.DTFC draw.dt.DTFC' );

$(this.dom.scroller).off( 'scroll.DTFC mouseover.DTFC' );
$(window).off( 'resize.DTFC' );

$(this.dom.grid.left.liner).off( 'scroll.DTFC wheel.DTFC mouseover.DTFC' );
$(this.dom.grid.left.wrapper).remove();

$(this.dom.grid.right.liner).off( 'scroll.DTFC wheel.DTFC mouseover.DTFC' );
$(this.dom.grid.right.wrapper).remove();

$(this.dom.body).off('mousedown.FC mouseup.FC mouseover.FC click.FC');

//remove DOM elements
var $scroller = $(this.dom.scroller).parent();
var $wrapper = $(this.dom.scroller).closest('.DTFC_ScrollWrapper');
$scroller.insertBefore($wrapper);
$wrapper.remove();

//cleanup variables for GC
delete this.s;
delete this.dom;
};

使用这种方法,去除和重新粘贴变得很简单:

fixedColumns.destroy();

然后从头开始:

var fixedColumns = new $.fn.dataTable.FixedColumns(this.table, {
iLeftColumns: 3
});

关于jQuery DataTablesfixedColumns 动态删除固定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23700623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com