我遇到与数据表相关的问题。我有大量的记录(45,000 +)。所以我在"服务器端"使用数据表。编码
问题在于,它在下面的代码中显示以下错误:
ERROR:
未捕获的TypeError:无法设置属性' nTf'未定义的
// allows cells to be used for multiple columns using colspan
if ( tfoot !== null ) {
var cells = oSettings.aoFooter[0];
for ( i=0, ien=cells.length ; i<ien ; i++ ) {
column = columns[i];
column.nTf = cells[i].cell;
if ( column.sClass ) {
$(column.nTf).addClass( column.sClass );
}
我正在使用的JavaScript代码是:
$(document).ready(function() {
$('#authorsdatatab').dataTable( {
"bPaginate": true,
"processing": true,
"serverSide": true,
"sAjaxSource": "../assets/common/authorsServerSide.php",
});
});
我用于显示服务器端脚本中的列的数据是:
$aColumns = array( 'a_ID', 'a_name', 'a_birth', 'a_death' );
/* Indexed column (used for fast and accurate table cardinality) */
$sIndexColumn = "a_ID";
/* DB table to use */
$sTable = "authors";
答案 0 :(得分:8)
如果其他人遇到此问题,我发现如果您执行以下操作会发生这种情况:
解决方案是确保Javascript中的列定义与HTML中的实际单元格数相匹配。此问题仍与新的DataTables API相关。
答案 1 :(得分:2)
检查tfoot列号是否在tbody中。 可能你在tfoot中有比在tbody中更多的列
答案 2 :(得分:0)
我遇到过这个问题两次,两次都是因为我的<thead>
和<tfoot>
中的列数多于<tbody>
中的列数。