2014-02-08 3 views
0

Я пытался воспроизвести это поведение, используя другой подход. У меня есть две страницы:?Выделение определенной строки в jQuery dataTable

  • edit.php ID = 45 является формой, где запись может быть изменена, и onSubmit он идет к Table.php ID = 45

  • table.php? Id = содержит данные, на которых каждая строка имеет первый скрытый столбец, который содержит уникальный идентификатор записи. Если присутствует нулевая строка id = 45, строка, содержащая строку с идентификатором 45, должна быть подсвечена с именем класса (аналогично при возврате в папку «Входящие» из открытого письма в Gmail).

Проблема в том, что я не могу найти строку по любому из примеров. Кстати, я использую источник данных на стороне сервера, так что я не могу просто использовать это:

$("#datatable_test tbody tr").find("td:contains("+id+")").addClass("highlight"); 

Итак, я попробовал fnGetNodes подход без везения (http://datatables.net/examples/advanced_init/events_post_init.html):

var id = <?$_GET['id']?>; 
$("tr", datatable_test.fnGetNodes()).each(function(data){ 
    $(this).find("td:contains("+id+")").addClass("highlight"); 
}); 

Любая помощь будет будем очень благодарны!

ответ

0

Самый простой способ добиться этого - включить идентификатор записи в качестве атрибута видимого td и использовать его для поиска вашей строки. Некоторые любят ...

oTable.$('[data-id=7688]').parents('tr').addClass('highlight') 

Если вы не в состоянии изменить разметку, здесь довольно запутанный способ найти строку:

var data = oTable.fnGetData() 
// assumes that the first column contains your recordId, 
// that the record id cell markup is just <div>recordId</div> and 
// that you have available to you the underscore.js library 
var row = _.findWhere(data, {0: "<div>" + recordId + "</div>"}) 
var index = _.indexOf(data, row) 
oTable.$('tr:eq(' + index + ')').addClass('highlight') 

Эта попытка является первым ножом; Я уверен, что его можно немного почистить.

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