2013-11-01 16 views
7

Ho una tabella html che utilizza datatables.js e non sono riuscito a trovare un chiaro esempio di come applicare la formattazione condizionale.Come si applica la formattazione condizionale utilizzando datatables.js?

Come potrei cambiare il colore del testo di una cella nella colonna 4, quando il suo valore == 0 e il valore nella colonna 5 è! = 0

<script> 
     $(document).ready(function() { 
     $("#GeneratedData").dataTable({ 
      "sDom": 'T<"clear">lrtip', 
      "oTableTools": { 
      "sSwfPath": "http://localhost:5637/Content/swf/copy_csv_xls_pdf.swf" 
      }, 
      "sPaginationType": "full_numbers" 
     }); 
     }) 
</script> 

risposta

11

Aggiornamento. La risposta originale riguardava dataTables 1.9.x. Funziona ancora, e funziona con DataTable 1.10.x e (finora) ma qui è un puro DataTables 1.10.x versione:

var table = $('#example').DataTable({ 
    rowCallback: function(row, data, index) { 
    if (data[3]=='0' && data[4]!='0') { 
     $(row).find('td:eq(3)').addClass('color') 
    } 
    } 
}) 

demo ->http://jsfiddle.net/2chjxduy/


Si dovrebbe utilizzare l'evento fnRowCallback per questo. Dalla documentazione:

Questa funzione permette di 'processo di post' ogni riga dopo essere stato generato per ogni estrazione tavolo, ma prima del rendering sullo schermo. Questa funzione può essere usata per impostare il nome della classe fila ecc

Quindi nel tuo caso, fare questo:

$("#GeneratedData").dataTable({ 
    //your settings as above here 
    fnRowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 
     if ($(nRow).find('td:eq(3)').text()=='0' && 
      $(nRow).find('td:eq(4)').text()!='0') { 
       $(nRow).find('td:eq(3)').addClass('color'); 
      } 
    } 
}); 

color è una classe CSS predefinita. Guardalo in azione in questo jsfiddle ->http://jsfiddle.net/GfNeA/

+0

Quando si impostano le opzioni nella versione corrente, abbiamo anche 'createRow', che * può essere spesso più efficiente *). Collegamenti per entrambe le opzioni: https://datatables.net/reference/option/createdRow https://datatables.net/reference/option/rowCallback – edmundo096

Problemi correlati