改变DataTables中任意单元的着色

时间:2011-04-08 15:48:52

标签: javascript datatables

我有一个DataTables表。这是我的结果的简化版本:

$('#dt_list').html( '<table cellpadding="0" cellspacing="0" border="1" class="content" id="test"></table>' );

$('#test').dataTable( {
    "bAutoWidth": true
    "aaData": [ 'val1', 'val2', 'val3' ],
    "aoColumns": [ 'col1', 'col2', 'col3' ],

});

...stuff here..

<div id='dt_list'></div>

JavaScript数组是由Python脚本基于从MySQL数据库中提取的值生成的(否则会无关紧要,但我只是想确保阅读此内容的人知道我在JavaScript之外动态生成内容数组)。

正如我所说,此表中显示的数据是MySQL查询的结果,然后由Python处理并输出到Python生成的页面中的JavaScript中。

我的Python代码中有逻辑,不仅可以确定单元格中的值,还可以确定单元格是否需要突出显示(通过单元格的背景颜色)。我的问题是,我如何随意改变某些DataTable单元格的颜色?

由于我的大多数逻辑都是在Python中,我在JavaScript中并不需要任何非常精美或优雅的评估,我只需要在JavaScript中使用某种方式来操作单元格的CSS属性或以其他方式指示不同的着色。

我看过fnRender,这似乎是我最大的希望。但是,我在这一点上的两个问题是(a)我找不到一种方法来操纵fnRender函数中的颜色(它似乎更有针对性地操纵内容本身)和(b)我不确定如何我可以让fnRender知道Python操作的结果,以确定是否需要特殊着色。

有什么我想念的吗?或者我可能只需要重新思考我是如何接近这个的?理想情况下,我想要一个解决这个问题的方法,不涉及改进我正在做的方式,但是如果必须的话,我将改变生成数据的方式或传递数据。我正在修改一些现有的代码而不想弄乱现有的设计,而是采用最短,最简单的方法将其表格列表输出转换为DataTables,其中一部分是生成某些单元格,因为它们具有修改后的颜色。

1 个答案:

答案 0 :(得分:1)

您的“fnRender”回调可以返回包含在标记<span><div>(或其他)中的单元格内容。然后,您可以使用fnDrawCallback函数查找这些函数,并使用类标记父<td>元素。