JqGrid altRows - Каждые две строки

Я выводил jqGrid и мне нужно было чередовать цвета строк, а вместо обычной, другой строки, мне нужно чередовать все две строки. Два ряда одного цвета, затем два ряда другого цвета, а затем вернуться к первому цвету и так далее...

Вот пример того, что мне нужно достичь...

Пример сетки:

+-------------------+
| row color 'black' |
| row color 'black' |
| row color 'white' |
| row color 'white' |
| row color 'black' |
| row color 'black' |
| row color 'white' |
| row color 'white' |
+-------------------+

Кажется, должно быть больше, чем jqGrid altRows и altclass.

Мысли?

Благодарю.

1 ответ

Это интересный вопрос! В общем rowattr обратный вызов rowattr - это лучший способ присвоить строкам атрибуты (например, атрибут класса), но rowattr вызов rowattr в текущей реализации jqGrid не имеет информации об индексе строки. Поэтому нужно установить altclass внутри loadComplete.

Для установки стандартного altclass можно использовать следующие

loadComplete: function () {
 $(this).find(">tbody>tr.jqgrow:visible:odd").addClass("myAltRowClass");
}

Вы можете использовать код в случае чередования TreeGrid (см. Ответ) или Группирование, например.

Если вам нужно чередовать каждую-две строки, вы можете использовать собственный фильтр вместо :odd. Например, демо использует

loadComplete: function () {
 $(this).find(">tbody>tr.jqgrow:visible")
 .filter(function (i) {
 return i % 4 >= 2;
 })
 .addClass("myAltRowClass");
}

и отображает следующую сетку

licensed under cc by-sa 3.0 with attribution.