0

場景:我在2個選項卡中有2個不同的數據表。 點擊標籤,我顯示/隱藏div和相應的數據表。JQuery Datatable - 無法獲取屬性'style'的值:object爲null或undefined

在document.Ready上,我正在初始化數據表。現在它工作正常。但是,當我從一個選項卡切換到另一個選項卡,然後調整瀏覽器窗口,我越來越控制檯以下錯誤:

SCRIPT5007: Unable to get value of the property 'style': object is null or undefined

我得到在datatable.min.js錯誤(版本1.10。 10)。附件是錯誤的屏幕截圖:datatable.min.js(line number:213)

DataTable的初始化是:

 "render": function (data, type, full, meta) { 
      if ($(data).attr('results-grid') != "") 
       return '<a href="javascript: void(0);" onclick="window.open(\'../School/DownloadEmp.aspx?EmpID=' + $(data).attr('results-grid') + '\')" target="_blank">' + data + '</a>'; 
       //return '<a href="javascript: void(0);" onclick="EmpLink(' + $(data).attr('results-grid') + ')">' + data + '</a>'; 
      else 
       return data; 
     } 

你要訪問的屬性「結果:在渲染

var $employeeTable, 
    savedPage ; 
function initalizeEmp() { 
    $employeeTable = $('#employee').DataTable({ 
     responsive: true, 
     "order": [[1, "desc"]], 
     "lengthMenu": [[10, 25], [10, 25]], 
     "columnDefs": [{ 
      "targets": 4, 
      "render": function (data, type, full, meta) { 
       if ($(data).attr('results-grid') != "") 
        return '<a href="javascript: void(0);" onclick="window.open(\'../School/DownloadEmp.aspx?EmpID=' + $(data).attr('results-grid') + '\')" target="_blank">' + data + '</a>'; 
        //return '<a href="javascript: void(0);" onclick="EmpLink(' + $(data).attr('results-grid') + ')">' + data + '</a>'; 
       else 
        return data; 
      }, "orderable": true 
     }, 
     { 
      'bSortable': false,"targets": [0] 
     }, 
     { type: 'date-mm-dd-yyyy', targets: 1 }, 
     { 
      'bSortable': false,"targets": [6] 
     }, 
     { 
      'bSortable': false,"targets": [7] 
     }, 
     { 
      'bSortable': false,"targets": [8] 
     } 
     ], 
     fnInitComplete: function() { 
      setTimeout(function() { 
       if (typeof savedPage !== 'undefined') { 
        $employeeTable.page(savedPage).draw(false); 
       } 
       //$('body').vtUnmask(); 
      }, 10); 
     } 
    }); 

    $('#employee').on('page.dt', function() { 
     savedPage = $employeeTable.page(); 
     $('input[id*="_checkBox"]').attr('checked', false); 
    }); 
} 
+0

是與您的特定代碼行相關聯的錯誤? – jonmrich

+0

嘗試使用相同的確切代碼,但在表格屬性末尾的方括號後面沒有逗號。 '...'bSortable':false,「targets」:[8] } ],<<這是一個 – jonmrich

+0

Hi @ jonmrich,謝謝你的回覆我試過沒有逗號,但還是不行。我也添加了錯誤的屏幕截圖。請檢查出來。 –

回答

0

您的問題發生grid'但$(data)不是html元素的值,要訪問td元素,可以使用fnCreateCell

 "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { 
      if ($(nTd).attr('results-grid') != "") 
      { 
       return '<a href="javascript: void(0);" onclick="window.open(\'../School/DownloadEmp.aspx?EmpID=' + $(nTd).attr('results-grid') + '\')" target="_blank">' + sData + '</a>'; 
      }else{ 
       return sData; 
      } 
     } 

例如:https://jsfiddle.net/cmedina/7kfmyw6x/3/

+0

嗨@CMedina,謝謝你的回覆。 我試過了你建議的代碼,但它不工作。 我添加了在datatable.min.js(版本1.10.10)中找到的問題的屏幕截圖。請檢查出來。如果您需要更多信息,請與我們聯繫。 –

+0

@PranavKumar你可以顯示你的代碼標籤html來幫助你! – CMedina

相關問題