2017-03-08 34 views
1

我正在建立一個表格,使用Datatables從數據庫中拾取值,並且想要顯示文本中數據庫中具有unread=true的行。我還沒有找到一種方法從表中使用Jquery/JS檢索任何值(即未讀列)以應用特定的類。檢索CSS格式設置的數據表格值

這可以以任何方式完成嗎?這是我目前的代碼,顯然不能解決問題。

$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { 
    $.fn.dataTable.tables({visible: true, api: true}).columns.adjust(); 
}); 
var table = $('table.table').DataTable({ 
"processing": true, 
"serverSide": true, 
"ajax": { 
    "dataSrc": "Data", 
    "url": "logsController/getDataTable", 
    "data": { string: $("input.form-control").val() }, 
    "type": "POST" 
     }, 
     "columns": [ 
      { "data": "datetime" }, 
      { "data": "type" }, 
      { "data": "data" } 
     ] 
}); 

$('#myTableLogs').DataTable(); 

console.log(data.unread)console.log(data.datetime)都返回 「數據不確定」

UPDATE: 我通過移除serverSide,改變我的代碼解決我的問題。見下面的答案。

回答

0

可以使用createdRow callback option測試行數據的價值和動態類添加到該行

var table = $('table.table').DataTable({ 
    "processing": true, 
    "serverSide": true, 
    "ajax": { 
     "dataSrc": "Data", 
     "url": "logsController/getDataTable", 
     "data": { string: $("input.form-control").val() }, 
     "type": "POST" 
    }, 
    "columns": [ 
     { "data": "datetime" }, 
     { "data": "type" }, 
     { "data": "data" } 
    ], 
    "createdRow": function(row, data) { 
     // replace with appropriate reference to your data structure 
     // and CSS class to change font weight 
     if (data.unread) $(row).addClass('text-bold'); 
    } 
}); 
+0

看起來不錯,但我得到「數據未定義」。我也試圖做一個簡單的'console.log(data.type);'但我也得到「數據沒有定義」。函數的結果應該如何被檢索? – remyremy

+0

數據表是否在沒有「createdRow」設置的情況下工作?並失敗呢?嘗試'console.log(數據)'?我懷疑你的桌子有另一個問題。 'serverSide'選項是一個非常高級的設置 – abigperson

+0

是的,我的表格顯示正確而不使用''createdRow''和'console.log(data)'也返回undefined。我使用'serverSide',因爲我的數據來自mysql數據庫。 – remyremy

1

我想通了服務器端沒有要求,並從this page和使用createdRow啓發自己。

$.ajax({ 
    url: "logsController/getDataTable", 
    method: 'post', 
    dataType: 'json', 
    success: function (data) { 
     var table = $('#myTableLogs').DataTable({ 
      paging: true, 
      sort: true, 
      searching: true, 
      data: data, 
      ordering: true, 
      columns: [ 
       { "data": "datetime" }, 
       { "data": "type" }, 
       { "data": "data" }, 
       { "data": "unread" } 
      ], 
      "createdRow": function (row, data, index) { 
       if (data.unread == 1) { 
         $('td', row).addClass('unread_class'); 
       } 
      } 
     }); 
});