2011-04-08 26 views
0

我有一個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數組是通過基於從MySQL數據庫中提取值的Python腳本生成的(這將是否則無關,但我只是想確認閱讀此內容的人知道我在JavaScript之外動態生成內容數組)。

正如我所說的,該表中顯示的數據是MySQL查詢的結果,然後由Python進行處理並輸出到由Python生成的頁面中的JavaScript中。

我在我的Python代碼中有邏輯來確定不僅價值進入一個單元格,而且該單元格是否需要任何突出顯示(通過單元格的背景顏色)。我的問題在於,如何隨意更改某些DataTable單元格的顏色?因爲我的大部分邏輯都是用Python編寫的,所以在JavaScript中我並不需要任何非常花哨的或優雅的評估,我只需要在JavaScript中使用某種方式來操縱單元格的CSS屬性或以某種其他方式指示一個不同的着色。

我已經看過fnRender,它似乎是我最好的希望。然而,我現在的兩個問題是(a)我找不到一種方法來處理fnRender函數中的顏色(它似乎更有針對性地操作內容本身)和(b)我不確定如何我可以讓fnRender知道Python操作的結果,以確定是否需要特殊着色。

有什麼我失蹤了嗎?或者,也許我只需要重新思考我如何接近這一點呢?理想情況下,我想要一個解決方案,不涉及重做我這樣做的方式,但我會改變生成數據的方式或者必要時通過它。我正在修改一些現有的代碼,而不是混淆現有的設計,但採取最短,最簡單的路徑將其表格輸出轉換爲DataTables,其中一部分將生成某些單元格作爲修改後的顏色。

回答

1

您的「fnRender」回調可以返回包裝在標記<span><div>(或其他)中的單元格內容。然後,您可以使用fnDrawCallback函數來查找這些元素,並用一個類標記父元素<td>

+0

謝謝你的回答!你給了我我需要的一切,關於fnDrawCallback以及使用div來獲得父母 – 2011-04-08 18:49:56

+0

@Mark好,我很高興它的工作!必要性是發明之母,我發現自己在以前的情況完全相同:-) – Pointy 2011-04-08 20:41:27