2016-11-18 88 views
0

我正在使用數據表,我想在列中顯示圖標(基於列數據中的值)。 我寫了一個這樣的代碼: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>"); 
          }        
         } 
        } 
}); 
}); 

的數據表工作正常,但列顯示數據的值,而不是圖標。如果我重新排列表格或進入第二頁分頁,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

相關問題