我正在尝试使用基本和高级搜索来实现Web应用程序,并且我正在使用datatable 1.10和jquery 2.2来显示搜索结果。我遇到了破坏方法的问题,我希望你们中的一些人能够帮助我找到解决方案,感谢所有人的帮助
让我解释一下我的项目,代码逻辑,目标和问题:
我可以在我的jsfiddle上看到一个包含5列的单个表。我还有一个全局变量“table”来处理数据表(DT)一旦创建。我声明了一个函数“loadSearchData”来加载另一个全局变量上的Ajax调用的参数。在我的两个搜索按钮的点击事件中,我检查DT是否已经存在然后我将其销毁,然后我调用函数“initializeDataTable”。我的想法是在每次单击“搜索”按钮时销毁现有DT并创建一个新DT。然而它不起作用,行为是“怪异的”:
我第一次输入搜索条件并单击搜索,工作得很好如果我修改搜索条件并再次单击搜索,则会出现网页错误
“行:1错误:无法获取未定义或空引用的属性'样式”
然后,如果不调试并再次单击搜索按钮,那么它再次完美无缺!
代码:
//BASIC SEARCH
$('#btnBasicSearch').on('click', function () {
$("#partialSearch").removeAttr("hidden");
loadSearchData('basicSearch');
if ($.fn.DataTable.isDataTable('#tbDocumentsList')) {
table.destroy();
}
initializeDataTable(searchParameters);
});
//ADVANCED SEARCH
$("#btnSearch").on('click', function () {
$("#partialSearch").removeAttr("hidden");
loadSearchData('advancedSearch');
jQuery.ajaxSettings.traditional = true;
if ($.fn.DataTable.isDataTable('#tbDocumentsList')) {
table.destroy();
}
initializeDataTable(searchParameters);
});
我确信有更好的方法可以做到这一点,这是我第一次使用数据表,可能我错过了什么,有人有任何想法吗?
你可以在这里看到完整的jsfiddle
https://jsfiddle.net/dalps/gxgLdo03/
我也在数据论坛上问过:
提前致谢
dalps
答案 0 :(得分:0)
好吧,我在数据论坛上得到了答案:我的html表有5列,在“columndefs”属性中我有以下内容:
“目标”:5, “数据”:“活跃”, “可见”:错误
由于列索引从零开始,我引用了一个不存在的列,解决方案,向表中添加一个新列