未捕获的TypeError:无法读取未定义的属性’aDataSort’

我正在进行分页,我正在使用DataTables插件,在某些表上它可以工作,但在某些表上它会出错:

未捕获的TypeError:无法读取未定义的属性’aDataSort’

我的页面脚本如下:

$(document).ready(function() { $('.datatable').dataTable( { "scrollY": "200px", "scrollCollapse": true, "info": true, "paging": true } ); } ); 

// HTML代码

 

不知道问题是怎么来的,我知道这是非常常见的错误,但我搜索并发现没有任何支持我的问题。
有谁知道解决方案?

在代码中使用类似下面的内容来禁用对DataTables排序(改编DataTables使用最新DataTables

 $(document).ready(function() { $('.datatable').dataTable( { 'bSort': false, 'aoColumns': [ { sWidth: "45%", bSearchable: false, bSortable: false }, { sWidth: "45%", bSearchable: false, bSortable: false }, { sWidth: "10%", bSearchable: false, bSortable: false } ], "scrollY": "200px", "scrollCollapse": true, "info": true, "paging": true } ); } ); 

aoColumns数组描述每列的宽度及其sortable属性,根据您自己的表(数量)列的需要进行调整。

我遇到了同样的问题,后来在columnDefs下的“targets”属性中发现了输入错误。 见下面的例子,

错误代码如下,

 { "name": "firstName", "target": [1], "visible": false } 

更正 – 在目标中错过了’s’:(

 { "name": "firstName", "targets": [1], "visible": false } 

看起来当导致列未初始化的某些内容时会发生此错误。 在这种情况下,我检查了事件’preInit.dt’没有被触发。

希望这有助于某人。

我使用KnockoutJS遇到了这个问题,因为当javascript尝试将DataTable应用于它时,尚未定义列。 我使用knockoutJS的方法是将我的数据绑定代码移动到一个淘汰模板中,并使用afterRender事件将DataTable应用于表。

以下是模板afterRender事件的knockoutJS文档的链接。

这是我的数据绑定的样子:

 

还有一个技巧。 在setupDataTable函数中,表仍然没有完全设置,(我试图获取fixedHeaders并且宽度尚未设置)。 因此,我使用0毫秒的延迟调用setTimeout,以使代码在第一个空闲周期运行。

这是我的setupDataTable:

 function setupDataTable() { setTimeout(function() { $("#schedule").DataTable({fixedHeader: true}); }, 0); } 

希望这有助于其他人寻找knockoutJS解决方案并遇到我遇到的同样问题。

这个错误出现在我面前,我相信因为我的“mData”和“sTitle”未定义。