Как объединить ячейки в jqGrid 4.0 - PullRequest
7 голосов
/ 11 апреля 2011

Я пытался «объединить» ячейки в 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 ]

13 голосов
/ 11 апреля 2011

Я нахожу ваш вопрос очень интересным, поэтому +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;"' }
    }
}

Я тестировал реализацию всего несколько раз, но, похоже,на работу:

enter image description here

Демонстрация, которую вы можете увидеть вживую здесь .

ОБНОВЛЕНО : ДругоеОтвет показывает, как можно использовать атрибут rowspan в jqGrid.

0 голосов
/ 11 апреля 2011

Похоже, это не поддерживается прямо сейчас.Они говорят «ближайшее будущее».

http://www.trirand.net/forum/default.aspx?g=posts&t=1184

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...