我有一个问题与数据表,我不知道如何解决它。
我在定制CMS中使用Datatables,一切都在我的Mac上正常工作(Safari,Chrome,Firefox)。与我的同事也一切正常(Windows)。
但是我们有一个客户(可能不止一个),数据表没有显示任何内容。我从客户那里收到了一个屏幕截图,其中只有标题可见。数据表不显示任何内容,也不是“未找到记录”。此客户在Windows计算机上的Google Chrome版本28.0.1500.95中遇到此问题。当客户打开Internet Explorer时,一切都工作正常。
我无法重现这个问题,所以我希望你们能帮我。也许这是一个更常见的问题。或者客户端的电脑上有什么东西,是什么原因导致数据表无法正常工作?客户端未禁用Javascript,因为CMS显示消息,该消息在屏幕截图中不可见。
这是我为这个表准备的JS:
$(document).ready( function() {
$('#applicationsTable').dataTable( {
"aaSorting": [[4,"desc"]],
"bPaginate": true,
"iDisplayLength": 50,
"bFilter": true,
"oLanguage": {
"oPaginate": {
"sPrevious": "Vorige",
"sNext": "Volgende",
},
"sSearch": "Zoeken:",
"sInfo": "Toont _START_ t/m _END_ van de _TOTAL_ sollicitaties.",
"sLengthMenu": "Toon _MENU_ sollicitaties"
}
} );
});
2条答案
按热度按时间sirbozc51#
这不是一个直接的答案,但它可能会给你一个如何开始调试的想法。正如JackPoint所说,你显然需要安装Chrome,打开页面,运行开发者工具,这样你就可以检查控制台日志。我在Chrome中也有同样的症状,并且能够追踪到我的bug,所以现在Datatables正在工作。我认为Chrome对错误非常敏感,如果你的代码中嵌入了一个严重的错误,整个脆弱的结构就会被破坏。在我的情况下,我不得不深入挖掘,以找到是什么绊倒了Chrome。我发出一个Ajax调用来获取datatable的数据,然后用该数据填充Knockout observableArray。页面上有一个HTML表绑定到这个observableArray,因此在Ajax返回数据后,Knockout会自动填充该表。然后,我可以在该表上调用dataTable(),并像往常一样用可排序的列等来装饰它。然而,我需要在我的observableArray中添加一个排序函数,我试图在其中调用String.toLowerCase,Chrome认为这是未定义的。控制台提醒我该错误。我发现排序功能导致了这种行为。我首先删除了它,果然Datatables又开始工作了。然后我回去系统地检查了我的排序函数的arguments对象(没有问题),最后意识到我需要将String.toLowerCase更改为String.prototype.toLowerCase。天知道为什么会发生这种情况,但我希望这已经给出了一些关于如何调试这样一个模糊问题的想法。
hsgswve42#
从数据表中删除Popover属性,它将工作。如果在创建表时没有添加该属性,那么一旦完成datatable绑定,就以实用的方式删除该属性。这是我的工作。