2013-05-03 11 views
19

używam jQuery datatables.I mieć dane jak następującoJak ustawić kolor dla wierszy tabeli na podstawie wartości kolumny w jQuery tabeli danych

Column1 Column2 Column3 
----------------------- 
AAA BBB  CCC 
AAA GGG  YYY 
BBB ooo  LLL 

Teraz w Kolumnie1 dla pierwszych 2 rzędach mam samą wartość AAA . Chcę zastosować trochę kolorów do tych wierszy. A następnie inny kolor dla trzeciego rzędu.Jak to mam 30 rekordów. Jest to możliwe. Jeśli to możliwe, mogę to zrobić. Korzystam z tabel danych jQuery. Dzięki z góry ..

Odpowiedz

46

Użyj fnRowCallback (lub nowszej rowCallback), aby uzyskać ten

$('#example').dataTable({ 
    "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 
     switch(aData[0]){ 
      case 'AAAA': 
       $(nRow).css('color', 'red') 
       break; 
      case 'BBBB': 
       $(nRow).css('color', 'green') 
       break; 
      case 'CCCC': 
       $(nRow).css('color', 'blue') 
       break; 
     } 
    } 
}); 

Demo: Fiddle

+0

Ale tu nie wiem ile cases.it przyjdzie dynamicznie – PSR

+0

@PSR sposób powinna istnieć jakaś logika bussiness który mówi, jakiego koloru mają być stosowane dla wartości –

+1

Dzięki @ArunPJohny, ale myślę, że '' 'return nRow' '' jest wymagany w tej funkcji wywołania zwrotnego, w przeciwnym razie, datatable podniesie wyjątek taki jak "węzeł nie został zwrócony przez fnRowCallBack" – simomo

7

API został niedawno zmieniony, należy teraz używać ADATA [ 'COLUMN1'] zamiast ADATA [0] Funkcjonalność

2

createdRow dodano v 1.10

To wywołanie zwrotne jest wykonywane, gdy tworzony jest element TR (i wszystkie elementy potomne TD zostały wstawione) lub zarejestrowane, jeśli używane jest źródło DOM, umożliwiające manipulowanie elementem TR.

Jest to szczególnie przydatne w przypadku korzystania z odroczonego renderowania (deferRender) lub przetwarzania po stronie serwera (serverSide), aby można dodawać zdarzenia, informacje o nazwach klas lub w inny sposób formatować wiersz podczas jego tworzenia.

https://datatables.net/reference/option/createdRow

Przykład:

$('#example').dataTable({ 
     // ... 
     "createdRow": function(row, data, dataIndex) { 
      if (data["column_index"] == "column_value") { 
       $(row).css("background-color", "Orange"); 
       $(row).addClass("warning"); 
      } 
     }, 
     // ... 
    }); 
+1

to działało dla mnie, ale musiałem określić "column_index" jako nazwę kolumny (ciąg) zamiast indeksu (int). – A21

Powiązane problemy