Мне пришлось немного покопаться в документации, чтобы найти решение, чтобы увидеть его в исходном контексте, перейдите сюда: 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.
Затем это вернет исходные данные, привязанные к этой строке, до того, как было применено какое-либо форматирование.
Несколько замечаний:
- В моем случае сетка разбивается на страницы, поэтому набор результатов никогда не превышает 10 элементов, поэтому `` пользовательские данные '' не будут становиться слишком большими
- Сортировка выполняется на стороне сервера, поэтому индекс
rowId
всегда будет возвращать правильное значение из 'userData'
- В то время как 'userdata', указанная как опция в jsonReader, все в нижнем регистре, чтобы получить его с помощью
getGridParam
, вам нужно указать его как 'userData'
person
R Bremner
schedule
09.03.2010