2011-03-28 33 views
0

我想改變基於日期範圍的jQuery數據表的背景顏色....我試圖用$ .fn.afnFiltering.push(.. 。)做日期範圍過濾...但無法弄清楚如何改變過濾行的顏色....基於日期範圍過濾更改jQuery數據錶行的css

繼承人我用來做過濾的代碼...我測試了這個和日期範圍過濾功能...

 //row filtering by date 
$.fn.dataTableExt.afnFiltering.push(
function (oSettings, aData, iDataIndex) { 
    var iFini = document.getElementById('dateStart').value; 
    var iFfin = document.getElementById('dateEnd').value; 
    if (iFini == "" && iFfin == "") { 
     return true; 
    } 
    else if (iFini != "" && iFfin == "") { 
     return true; 
    } 
    else if (iFini == "" && iFfin != "") { 
     return true; 
    } 
    else if (iFini != "" && iFfin != "") { 
     var sdate = new Date(); 
     var edate = new Date(); 
     var initialdt = iFini.split("/"); 
     var enddt = iFfin.split("/"); 
     var filterdt1 = aData[3].split(" "); 
     var filterdt = filterdt1[0].split("/"); 
     var msg = ""; 
     if ((Number.parseInvariant(filterdt[0]) + 1 >= Number.parseInvariant(initialdt[0]) + 1 && Number.parseInvariant(filterdt[0]) + 1 <= Number.parseInvariant(enddt[0]) + 1) && (Number.parseInvariant(filterdt[1]) >= Number.parseInvariant(initialdt[1]) && Number.parseInvariant(filterdt[1]) <= Number.parseInvariant(enddt[1])) && (Number.parseInvariant(filterdt[2]) >= Number.parseInvariant(initialdt[2]) && Number.parseInvariant(filterdt[2]) <= Number.parseInvariant(enddt[2]))) { 
      // msg = "initialdt: " + initialdt[0] + "/" + initialdt[1] + "/" + initialdt[2] + "====" + "enddt: " + enddt[0] + "/" + enddt[1] + "/" + enddt[2] + "====Filter:" + filterdt[0] + "/" + filterdt[1] + "/" + filterdt[2] + "/n"; 

       //need to change the style here...not sure how to address   
       //the individual row 

      return true; 
     } 
    } 

    return true; 
} 
); 

我也結合下面的fnDraw功能...

$("#dateStart").keyup(function() { $dTable.fnDraw(); }); 
$("#dateStart").change(function() { $dTable.fnDraw(); }); 
$("#dateEnd").keyup(function() { $dTable.fnDraw(); }); 
$("#dateEnd").change(function() { $dTable.fnDraw(); }); 

回答

1

您可以使用iDataIndex和fnGetNodes獲取tr元素。

var tr = oTable.fnGetNodes(iDataIndex);
$(tr).css('background-color', '#F00');

oTable必須包含DataTable對象。

var oTable = $("#myTable").dataTable({ ... });

+0

OK,這樣的工作...部分....現在我有另外一個問題......僅在第一頁的條目得到強調....如果我瀏覽的所有頁面,然後排序任何列其餘的匹配條目得到高亮....什麼給? – 2011-04-01 10:46:30

+0

查看這個簡單的例子:[http://jsfiddle.net/codigoespagueti/AHswU/1/](http://jsfiddle.net/codigoespagueti/AHswU/1/)。你的代碼有什麼不同嗎? – 2011-04-01 19:19:17