未捕获的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”未定义。