Как объединить ячейки в jqGrid 4.0
Я пытался "объединить" ячейки в jqGrid, то есть я хочу, чтобы ячейки для определенных строк имели colspan=2 (или более). До сих пор я смог заставить границы работать правильно, используя cellattr опция в модели столбца с чем-то вроде этого:
colModel = { name: "a", width=50,
cellattr: function(rowId, tv, rawObject, cm, rdata) {
if (rowId < 5) { return 'sytle="border-right:0px"'; } },
name: "b", width=50,
cellattr: function(rowId, tv, rawObject, cm, rdata) {
if (rowId < 5) { return 'sytle="border-left:0px"'; } } };
Это просто удаляет границу для ячеек, которые я хочу объединить (a & b до строки 5). Но если я добавлю текст в любой из этих полей, выравнивание текста, очевидно, не будет работать должным образом, а текст просто отрезается, если он больше 50 пикселей.
Я мог бы сделать какую-то сумасшедшую вещь, где я делаю выравнивание по центру, разрезая весь текст пополам и добавляя каждую половину в столбцы "a" и "b" под правым выравниванием и левым выравниванием соответственно. Однако, кажется, должен быть лучший способ.
2 ответов
Я нахожу ваш вопрос очень интересным, поэтому +1 от меня.
мне кажется, что использование colspan=2
это то, что вам действительно нужно. Иметь одинаковое количество столбцов в строках, имеющих colspan=2
Я предлагаю скрыть следующий <td>
элемент в строке:
{
name:'a',index:'a', width:50,
cellattr: function(rowId, tv, rawObject, cm, rdata) {
if (Number(rowId) < 5) { return ' colspan=2' }
}
},
{
name:'b',index:'b', width:50,
cellattr: function(rowId, tv, rawObject, cm, rdata) {
if (Number(rowId) < 5) { return ' style="display:none;"' }
}
}
Я тестировал реализацию всего несколько раз, но, похоже, работает:
демо вы можете увидеть в прямом эфире здесь.
обновлено: другого ответа показывает, как можно использовать rowspan
атрибут в jqGrid.