Возможно использовать getRowData метод для получения тока ячейки, но это получает содержание текущей ячейки, а не исходные данные, прежде чем это прошло средство форматирования.
Как я получаю исходное содержание, прежде чем преобразования форматирования будут применены? К вашему сведению я заполняю таблицу с помощью JSON.
Мне пришлось немного покопаться в документации, чтобы найти решение, чтобы увидеть его в исходном контексте, перейдите сюда: jqGrid Data Manipulation , в частности, раздел в конце под названием «Пользовательские данные» .
Во-первых, измените реализацию jsonReader следующим образом:
jsonReader: {
root: 'Data',
page: 'Page',
total: 'Total',
records: 'Records',
userdata : 'Data',
repeatitems: false,
id: 'Id'
}
Обратите внимание, что для параметра userdata установлено то же значение, что и для root «Data»
В моем случае мне нужно было получить исходные данные строки, когда пользователь выбрал строку. Я реализовал это следующим образом:
onSelectRow: function(rowid) {
processRow(rowid);
}
Для получения данных в методе строки процесса у меня есть следующее:
var rowData = $("#resultGrid").getGridParam('userData')[rowId - 1];
Где #resultGrid - это ссылка на мою jqGrid.
После этого будут возвращены исходные данные, привязанные к этой строке до того, как было применено какое-либо форматирование.
Несколько замечаний:
rowId
всегда будет возвращать правильное значение из 'userData' getGridParam
, вам необходимо укажите его как 'userData' Вот как получить данные ячеек из строки.
var rowData = jQuery(this).getRowData(rowId);
var colData = rowData['columnName']);
columnName - имя столбца таблицы.