2017-05-07 97 views
0

這是我第一次使用數據表,並且正在習慣它。我發現一個方便的方式來傳遞額外的屬性或修改從服務器檢索到的源數據(我使用從服務器端和客戶端端渲染json種子)。Datatables - td附加屬性

代碼:

"columnDefs": [{ 
    "targets": "_all", 
    "createdCell": function (td, cellData, rowData, rowIndex, colIndex) { 



     //code column 
     if (colIndex == 0) { 
      cellData = '<input value="' + cellData + '">'; 
      $(td).html(cellData); 

     } 

     //expire column 
     if (colIndex == 3) { 
      $(td).html('4'); 
     } 

      // colouring all columns with index less than 3 as red 
     if (colIndex < 3) { 
      $(td).css('color', 'red') 
     } 
    } 
}] 

它聞起來有點髒到我,因爲我使用索引進行區分的數據。

我需要爲此類代碼付款嗎?會有什麼後果嗎?

有沒有什麼合適的方法可以達到同樣的舒適程度?

此外,我注意到「createdRow」屬性,並要使用它,我用createdCell

回答

1

以同樣的方式閱讀的源代碼後,我發現這一點:

     columns: [ 

          { 
           title: "Код", 
           data: "codeSupplier", 

           className: 'codeSupplier', 
           orderable: false, 
           searchable: false, 

           render: function(data){ 
            return '5' + data; 
           } 

          }, 

看起來更niftier

所以功能應使用渲染

+0

是的。通常可以這樣說,如果你想定製'​​',你應該使用'createdCell()',如果你想定製* content *,你應該使用'render()'。你有兩個組合,然後使用它們的每個目的:) – davidkonrad