2016-03-02 38 views
1

我試圖實現一個基本和高級搜索的web應用程序,並且我使用數據表1.10和jquery 2.2來顯示搜索結果。我與銷燬方法有問題,我希望你們中的一些人能夠幫助我找到解決方案,在此先感謝大家的幫助Datatable銷燬功能不按預期方式工作

讓我解釋一下我的項目,代碼邏輯,目標和問題:

我有一個單一的表,5列,你可以看到我的jsfiddle。我也有一個全局變量「表」來處理數據表(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

回答

0

嗯,我得到了我的回答對數據表論壇:我的HTML表有5列,並在「columndefs」屬性我有以下幾點:

「目標」:5, 「數據」:「活動」, 「visible」:false

由於列索引從零開始,我引用了一個不存在的列,解決方案,向表中添加一個新列