2013-11-01 36 views
7

私はdatatables.jsを使用するhtmlテーブルを持っており、条件付き書式を適用する明確な例を見つけることができませんでした。その値== 0と5列目の値が!= 0datatables.jsを使用して条件付き書式を適用するにはどうすればよいですか?

<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> 

答えて

11

更新とき

は、どのように私は4列目のセルのテキストの色を変更することができます。元の答えはdataTables 1.9.xを対象としていました。それはまだ動作し、DataTableの1.10.xにも(今のところ)で動作しますが、ここで純粋なDataTableの1.10.xバージョンです:

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

デモ - >http://jsfiddle.net/2chjxduy/


あなたがすべきこれにはfnRowCallbackイベントを使用してください。ドキュメントから:それは、各テーブルのドローのため を生成した後

この機能を使うには、「ポストプロセス」に各行を可能にするが、それは、画面に描画される前に。 この機能は、など

を行クラス名を設定するために使用される可能性がありますので、あなたの場合には、この操作を行います。

$("#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は、事前に定義されたCSSクラスです。このjsfiddleの動作を参照してください - >http://jsfiddle.net/GfNeA/

+0

現在のバージョンでオプションで設定する場合、私たちは '*より効率的であることがあります*)。 両方のオプションのリンク: https://datatables.net/reference/option/createdRow https://datatables.net/reference/option/rowCallback – edmundo096

関連する問題