2011-03-28 3 views
0

Я пытаюсь изменить цвет фона jquery datatable на основе диапазона дат .... Я попытался использовать $ .fn.afnFiltering.push (.. .), чтобы сделать фильтрацию диапазона дат ... но не могу определить, как изменить цвет отфильтрованных строк ....изменить css строки jquery datatable на основе фильтрации диапазона дат

heres код, который я использую для фильтрации ... Я проверил это и дата фильтрации диапазон работы ...

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

Вы можете получить элемент tr с помощью iDataIndex и fnGetNodes.

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

OTABLE должен содержать объект DataTable.

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

+0

нормально, так что работал ... частично .... теперь у меня есть еще один вопрос ... только первые записи страниц получить выделенный .... если я просмотреть все страницы, а затем сортировать по любому столбцы остальная часть совпадающих записей получает hightlighted .... что дает? –

+0

Проверьте этот простой пример: [http://jsfiddle.net/codigoespagueti/AHswU/1/](http://jsfiddle.net/codigoespagueti/AHswU/1/). Есть ли разница с вашим кодом? –

Смежные вопросы