Есть ли способ динамически изменить значение ячейки 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;
};
Это просто очень простой пример реализации, но он должен дать вам представление.