2013-06-25 50 views
0

我正在從MySQL中獲取數據,我想突出顯示所獲取數據的第一行。Datatables - 突出顯示從服務器獲取的任何行

這是我的代碼

$(document).ready(function() { 
       $('#example').dataTable({ 
        "bProcessing": true, 
        "bServerSide": true, 
        "sAjaxSource": "scripts/server_processing.php" 
       });     
       $('tr:eq(2)').addClass('tcurrent'); 
      }); 

的代碼就是獲取數據,但凸顯了桌腳。

這是我的CSS

.tcurrent{background-color:pink;} 

這可以使用現有的回調之一來完成?

+0

您是否嘗試過'$( 'TBODY TR:第一胎')'? –

回答

2

的問題是,你的腳本運行在服務器上的數據可能沒有加載到表中。

由於您使用的是服務器端處理,因此它會異步加載數據,這意味着執行$('tr:eq(2)').addClass('tcurrent')時表中可能不包含任何行。

在這種情況下的解決方案是使用負載回調方法,但在這種情況下,我沒有看到datatables documentation中的任何服務器負載回調。

一個可能的解決方案是使用fnRowCallback

"fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 
    // Bold the grade for all 'A' grade browsers 
    if (iDisplayIndex == 2) { 
    $(nRow).addClass('tcurrent'); 
    } 
} 
+0

我已經嘗試使用fnDrawCallback,它仍然有相同的結果。 – Gandalf

+0

@Logan嘗試使用fnRowCallback,使用'iDisplayIndex'找到行索引和類添加到'nRow' –

+0

這凸顯了第二列' 「fnRowCallback」:功能(nRow,ADATA,iDisplayIndex,iDisplayIndexFull){ \t \t \t \t \t $('td:eq(1)',nRow).addClass('current'); \t \t \t \t \t}' – Gandalf

0

你可以試試這個代碼css

table tbody tr:nth-child(3){ 
    background-color:pink; 
} 

更新

$('#example').dataTable({ 
     "bProcessing": true, 
     "bServerSide": true, 
     "sAjaxSource": "scripts/server_processing.php", 
     "fnDrawCallback": function(oSettings) { 
      $('#example tr:eq(2)').addClass('tcurrent'); 
     } 
}); 

閱讀文檔http://datatables.net/ref#fnDrawCallback

+0

這工作,但我需要在jQuery中做到這一點。 – Gandalf

+0

@Logan Ztest上面的答案我已經對它進行了修改。 –

+0

我在行回調方面取得了一些成功,但它突出顯示了第二列,而不是第二列。您發佈的代碼與我使用的代碼相同,即突出顯示了表和表頭,具體取決於'當量()'。 – Gandalf

0

$('tr:eq(2)')是選擇第三行。

如果你想第一個,使用$('tr:eq(0)')$('tr:first')

+0

突出顯示標題。 – Gandalf

+0

在這種情況下,使用'$('tr:eq(1)')'作爲下一個。 – pseux

+0

突出顯示footer.I嘗試使用回調。 – Gandalf

相關問題