Прежде всего, я нахожу ваш вопрос очень интересным, поэтому +1 за вопрос. То, что вы обнаружите, может быть очень большой проблемой, которую трудно диагностировать. Поэтому я рекомендую вам разместить соответствующее предложение в запросе функции на http://www.trirand.com/blog/?page_id=393/feature-request/.
Теперь о возможностях обхода. Самый простой способ - генерировать уникальные идентификаторы для разных сеток на стороне сервера. Но это не всегда возможно. Вы можете добавить id_prefix
в качестве дополнительного параметра кода вашего сервера, который генерирует ответ JSON / XML из jqGrid. Затем сервер должен добавить этот префикс ко всем идентификаторам перед отправкой обратно в jqGrid. Этот обходной путь не подходит, но он будет работать.
Другой способ, который я вижу, это изменение id всех строк 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 на своей странице только для отображения данных в сетке, это может быть вашим решением. Вы не должны забывать о возможных новых проблемах, которые приводят к этому обходному пути. Если вы используете сценарий master / detail, Edit / Delete и т. Д., Вы должны принять во внимание, что идентификаторы сетки теперь будут иметь префиксы. Поэтому вам придется включать дополнительный код по вечерам, например onclickSubmit
, serializeRowData
, serializeGridData
и т. Д., Чтобы сократить префикс перед использованием идентификатора или перед отправкой идентификаторов на сервер.