2017-05-07 69 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