2016-11-18 28 views
0

私はdatatablesを使用しています。列データの値に基づいて、列にアイコンを表示したいと考えています。 私はこのようなコードを書いている:DataTables:createdCellはページロードで機能しません(動作後)

$(document).ready(function() { 

var oTable = $("#initiativeTable").DataTable({ 
    "serverSide":true, 
    "processing":true, 
    "searching": false, 
    "ordering": true, 
    "order": [[ 0, "desc" ]], 
    "ajax": '${basePath}/cns/initiative/table.json?teams=${teams}&fields=${fields}&search=${search}', 
    "columns": [ 
       { "data": "id_init" },{ "data": "parent_name_init" },{ "data": "name_cust" },{ "data": "name_init" },{ "data": "code_paf" },{ "data": "name_team" },{ "data": "pa_name_emp" },{ "data": "pgm_name_emp" },{ "data": "pm_name_emp" },{ "data": "id_initstt" },{ "data": "description_contrtype" },{ "data": "description_inittype" },{ "data": "is_revised_init" }] , 
       "columnDefs": [{ "targets": 12, 
         "createdCell": function (td, cellData, rowData, row, col) { 
          if (cellData == 'false') { 
           $(td).html(""); 
          }else{ 
           $(td).html("<span class='glyphicon glyphicon-ok'></span>"); 
          }        
         } 
        } 
}); 
}); 

のDataTableは正常に動作しますが、列はデータの値ではなく、アイコンが表示されます。テーブルを並べ替えるか、またはページネーションの第2ページに移動すると、createdCellが機能し、アイコンが表示されます。 ページの最初の読み込み時にのみ機能します。 問題は何ですか?事前に

おかげ

乾杯

マッテオ

+1

代わりに 'render()'を使います - > https://datatables.net/reference/option/columns.render – davidkonrad

+0

はい、それは最初の読み込みでも動作します。ありがとう – Matteo

答えて

0

createdCellの構文はcolumns.createCellを確認し、内部の列です:

columns: [ 

      { 
      data : "name_data", 
      createCell: function(){ 
       //code 
      } 
      } 

] 

あなたはこのコードを使用することができます:

{ 
    "data": "is_revised_init", 
    "createdCell": function (td, cellData, rowData, row, col) { 
         if (cellData == 'false') { 
          $(td).html(""); 
         }else{ 
          $(td).html("<span class='glyphicon glyphicon-ok'></span>"); 
         }        
        } 

} 
+1

私は試みましたが、それは動作しませんでした。私は以下のようにrender()を使いました。 "targets":12、 "render":function(cellData、type、full、meta){ if(cellData == 'false'){ return ""; } else { \t return ""; – Matteo

関連する問題