2017-05-07 13 views
0

これは私がデータテーブルを使用して初めてのことですが、私はそれに慣れています。Datatables - td追加の属性

追加の属性を渡す、またはサーバーから取得したソースデータを変更する便利な方法が見つかりました(サーバー側とクライアント側のレンダリングからjsonを使用してシードを使用します)。

コード:

"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') 
     } 
    } 
}] 

私はデータを区別するためのインデックスを使用しているためそれは、私には少し汚れてにおいがします。

後でそのようなコードを支払う必要がありますか?結果はありますか?

同じことを達成するのに適切な方法はありますか?

     columns: [ 

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

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

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

          }, 

だから機能

をずっとniftierルックス:

はまた、私は「createdRow」プロパティに気づき、それを私がcreatedCell

答えて

1

を使用するのと同じ方法を使用しようとしてソースコードを読んだ後、私はこれを見つけましたレンダリングを使用する必要があります

+0

はい。一般的なルールとして、 '​​'をカスタマイズしたい場合は 'createdCell()'を使うべきですが、* content *をカスタマイズするには 'render()'を使うべきです。あなたは両方の組み合わせを持っていて、そのそれぞれの目的のために両方を使用します:) – davidkonrad

関連する問題