Прежде всего я считаю ваш вопрос очень интересен, так +1 к вопросу. То, что вы узнаете, может быть очень большой проблемой, которая может быть затруднена. Поэтому я рекомендую вам разместить соответствующее предложение в запросе функции на http://www.trirand.com/blog/?page_id=393/feature-request/.
Теперь об обходных возможностях. Самый простой способ - создать уникальные идентификаторы для разных сеток на стороне сервера. Но это не всегда возможно. Вы можете добавить id_prefix
в качестве дополнительного параметра вашего кода сервера, который создает JSON/XML-ответ от jqGrid. Затем сервер должен добавить этот префикс ко всем идентификаторам перед отправкой обратно в jqGrid. Это обходное решение не очень приятно, но оно будет работать.
Другим способом, который я вижу, является изменение идентификатора всех строк jqGrids относительно jsonReader
(см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#jsonreader_as_function). Если добавить к jqGrid параметр, как следующее:
jsonReader: { id: function(obj) { return "BlaBla" + obj.id; } }
тогда все идентификаторы в таблице получит приставку «BlaBla». Если вы используете jqGrids на своей странице только для отображения данных в сетке, это может быть вашим решением. Вы не должны забывать о возможных новых проблемах, которые вызывают это обходное решение. Если вы используете основной/подробный сценарий, Edit/Delete и т. Д., Вы должны принять во внимание, что у ids сеток будут префиксы. Поэтому вам нужно будет добавить дополнительный код в evens, например onclickSubmit
, serializeRowData
, serializeGridData
и т. Д., Чтобы префикс префикса перед использованием id или перед отправкой идентификаторов на сервер.
Привет Тим! Я опубликовал в http://www.trirand.com/blog/?page_id=393/feature-request/prefixes-to-rowids/ предложение, которое устраняет проблему в будущем. Сегодня Тони согласен, что это будет реализовано в версии 3.8 jqGrid. См. Также http://www.trirand.com/blog/?page_id=393/releases/jqgrid-3-8-beta/ список новых функций в версии 3.8 jqGrid. – Oleg
Олег, спасибо, что следи за этим вопросом! – Tim