2017-06-09 70 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'); 
    } 
    ... 
}, 
相关问题