Как удалить класс CSS из ячейки jqGrid? - PullRequest
5 голосов
/ 14 июня 2011

Можно добавить класс CSS в ячейку jqGrid, используя метод setCell, как показано ниже.

grid.setCell(rowId, "ColumnName", "", "my-style-class");

Учитывая, что этот метод способен только добавить классы CSS, как можно удалить класс CSS из ячейки jqGrid?

Ответы [ 2 ]

11 голосов
/ 14 июня 2011

Нельзя удалить класс вызова стандартным методом jqGrid.Таким образом, вы должны сделать это вручную:

var iCol = getColumnIndexByName(grid,"ColumnName"),
    tr = grid[0].rows.namedItem(rowid), // grid is defined as grid=$("#grid_id")
    td = tr.cells[iCol];
$(td).removeClass("my-style-class");

, где getColumnIndexByName - простая функция, которая получает индекс столбца по имени столбца:

var getColumnIndexByName = function(grid,columnName) {
    var cm = grid.jqGrid('getGridParam','colModel');
    for (var i=0,l=cm.length; i<l; i++) {
        if (cm[i].name===columnName) {
            return i; // return the index
        }
    }
    return -1;
}

См. Демонстрацию здесь .

ОБНОВЛЕНО : Свободный jqGrid имеет iColByName внутренний параметр, который можно использовать вместо функции getColumnIndexByName.Параметр iColByName будет внутренне заполнен свободной jqGrid и обновлен путем переупорядочения столбцов.Так что безопасно использовать

var p = grid.jqGrid("getGridParam"), // get the reference to all parameters
    iCol = p.iColByName["ColumnName"], // get index by column name
    cm = p.colModel[iCol]; // item of "ColumnName" column

Способ очень прост и работает очень быстро.Следует учитывать, что эта функция включена в бесплатную jqGrid после публикации бесплатной jqGrid 4.8.Поэтому для загрузки этой функции необходимо загрузить последние источники с GitHub или использовать хотя бы бесплатную версию jqGrid 4.9-beta1.

1 голос
/ 24 февраля 2017

Можно легко добавить новый класс в ячейку, удалив старый класс как:

$("#gridname").removeClass('oldclass')
              .setCell(rowId,'column_name','','newclass');

Где rowId - идентификатор строки, содержащей соответствующую ячейку, и может быть получен как:

var ids = $("#gridname").jqGrid('getDataIDs');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...