2013-09-19 2 views
1

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

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

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

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

Похоже, что должно быть больше, чем altRows jqGrid и altclass.

Мысли?

Спасибо.

ответ

4

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

Чтобы установить стандартный altclass можно использовать следующие

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

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

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

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

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

enter image description here

+0

Это очень просто и работает точно так же, как это необходимо. Спасибо, кучка Олега! – user1801810

+0

@ user1801810: Добро пожаловать! – Oleg

+0

@ Олег вы можете посмотреть на этот вопрос, пожалуйста, http://stackoverflow.com/questions/18924180/jqgrid-edit-method-doesnt-fire-up-second-time – inputError

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