Есть ли способ динамически изменить значение ячейки jqGrid?

Этот вопрос, возможно, задавался много раз, но я хотел бы знать, возможно ли динамическое изменение значения ячейки jqgrid?

У меня в основном есть сетка, которая загружается с данными через строку JSon. В некоторых строках для определенного столбца это значение может быть "нулевым". Таким образом, зная, какой идентификатор строки заранее, это одна проблема, а затем возможность изменить это значение на другое. например. измените "ноль" на "не применимо".

Вся помощь будет оценена. Благодарю.

2 ответа

Я бы порекомендовал вам использовать beforeProcessing обратный вызов, который прост в использовании и который очень мощный. Например, если вы получаете данные с сервера в стандартном формате JSON

{ 
    "total": "xxx", 
    "page": "yyy", 
    "records": "zzz",
    "rows" : [
        {"id": "1", "cell": ["cell11", "null", "cell13"]},
        {"id": "2", "cell": ["cell21", "cell22", null]},
        ...
    ]
}

Вы можете сделать что-то вроде следующего

beforeProcessing: function (data) {
    var rows = data.rows, cRows = rows.length, row, iRow, cCol, iCol, cell;
    for (iRow = 0; iRow < cRows; iRow++) {
        row = rows[iRow].cell;
        for (iCol = 0, cCol = row.length; iCol < cCol; iCol++) {
            cell = row[iCol];
            if (cell === null || cell === "null") {
                row[iCol] = "Not Applicable";
            }
        }
    }
}

Таким образом, вы можете изменить данные, возвращаемые с сервера, прежде чем данные будут обработаны jqGrid.

Я не думаю, что изменение значения - это то, что вам действительно нужно в этой ситуации. Вы должны создать свой собственный форматтер. Это может выглядеть более менее так:

var nullFormatter = function(cellvalue, options, rowObject) {
    if (cellValue == null)
        return "Not Applicable";
    else
        return cellValue;
};

Это просто очень простой пример реализации, но он должен дать вам представление.

Другие вопросы по тегам