数据库销毁功能无法按预期工作

时间:2016-03-02 19:19:26

标签: datatable destroy

我正在尝试使用基本和高级搜索来实现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/

我也在数据论坛上问过:

http://datatables.net/forums/discussion/33563/datatable-destroy-function-not-working-as-expected#latest

提前致谢

dalps

1 个答案:

答案 0 :(得分:0)

好吧,我在数据论坛上得到了答案:我的html表有5列,在“columndefs”属性中我有以下内容:

“目标”:5, “数据”:“活跃”, “可见”:错误

由于列索引从零开始,我引用了一个不存在的列,解决方案,向表中添加一个新列