使用jquery.datatables与ColVis插件插件,我收到此错误,当我删除列:
“无法读取的未定义的属性‘sWidth’”。我一直没能在网上找到一个解决这个错误。
我不知道是什么导致了错误,虽然我有,我想张贴谁遇到这个问题对方的利益修复。
我使用的是从http://datatables.net/ jquery.datatables 1.9.4。
我有这个错误时列的数
<thead></thead>
来自柱的在许多不同的
$('#ls-table').DataTable($.extend({}, window.coonDataTableOptions, {
columns: [
<here>
]
}));
对数据表的源代码的行3255是这行代码:
nThs[i].style.width = o.aoColumns[iVis].sWidth;
在这种情况下o.aoColumns [IVIS]为空,因为由索引表示的列刚刚被隐藏。好像我已经运行到该插件的创作者也没想到会有一个角落的情况。上面的代码被调用响应于内部数据表事件,这是由一个由ColVis称为当列被隐藏方法所触发。所有需要解决,这是改变上面的代码:
var column = o.aoColumns[iVis];
if(column != null) {
nThs[i].style.width = o.aoColumns[iVis].sWidth;
}
不幸的是这需要修改的核心插件代码,但我会在一个bug报告,并希望他们很快解决这个问题。在此期间,希望这可以帮助人们寻找一种解决方法。
发生这样的错误只是由于内部填充列
...数据表(... “列”:...)
与定义的HTML页面不匹配拥有的列数。
.. ..
使用$("thead").empty();
的mainTable.clear().destroy().draw();
后
问题就在这里上的数据表;一旦从jquery的加载到HTML5数据“THEAD”的数据表的jquery例如。 mainTable.clear().destroy().draw();
无法删除THEAD数据,以便该溶液是使用jquery .empty()
将其删除。
别客气 :)
搜索a.aoColumns[D].sWidth
,更换
var column = a.aoColumns[D];if(column != null) {c.style.width=a.aoColumns[D].sWidth}