2017-06-09 67 views
0

我正在使用Yajra Laravel Datatables與服務器ajax負載進行數據顯示,以防止大量的長時間加載。使用Laravel DataTable設置單個單元格的背景顏色屬性

現在我想在一排取決於狀態(和其他選項)

我發現我可以很容易地指標的影響添加到整行,根據選項彩單TD:

->setRowAttr([ 
    'style' => function($item){ 
     return $item->disabled ? 'background-color: #ff0000;' : 'background-color: #00ff00;'; 
    } 
]) 

並且這產生了我:

enter image description here

但我並不需要顏色全排,只有登記TD(在這種情況下)因爲不同的顏色將被應用爲活動狀態+另一個用於房間羣體,像這樣:

enter image description here

這又如何實現呢?

PS:我使用Laravel 5.3 Datatavles 6

+0

有一天,我在我的情況下,它是固定的幸運使用類行,我想刪除樣式給一個類來預訂行作爲'面臨着同樣的問題class =「sorting_1」' –

+0

目前我唯一的想法是添加跨度類像'color-me'和數據元素與所需的顏色。然後創建JavaScript來獲取所有這些元素,並將背景色添加到找到的每個元素的父'td'。 – Peon

+0

@丹尼斯你可以嘗試的好主意 –

回答

0

好吧,這個閱讀本文件
http://datatables.net/release-datatables/examples/advanced_init/row_callback.html後解決自己:

首先我以前Datatables make()呼叫添加附加列,因爲原始的語言輸出將被覆蓋,如下所示:

->addColumn('active', function ($item) { 
    return $item->disabled ? 0 : 1; 
}) 
->editColumn('disabled', function ($item) { 
    $item->disabled ? t('No') : t('Yes'); 
}) 

然後我數據呼叫後立即加入檢查JS部分:

serverSide: true, 
ajax: { 
    url: ..., 
    type: "get" 
}, 
columns: [ 
    ... 
    {data: 'disabled', name: 'disabled'}, 
    ... 
], 
createdRow: function (row, data, index) { 
    ... 
    if (data['active'] == 1) { 
     $('td', row).eq(5).addClass('success'); 
    } else { 
     $('td', row).eq(5).addClass('danger'); 
    } 
    ... 
}, 
相關問題