2012-02-16 2 views
1

Некоторых данных о ситуации:jqgrid как сохранить строку при перезарядке сетки с

Say У меня есть вид сетки из 10 рядов (клюв высоты починки), но моя запись данных имеет более 10 записей - так что будет быть вертикальной полосой прокрутки.

say Я хочу отредактировать (или удалить) строки 14,16 и 17. при выборе строки 14, я использую функцию onselect для вызова внешней формы. После отправки внешней формы данные сохраняются, и я обновляю сетку, выполняя триггер reloadgrid. [Я не использовал форму редактирования, которая поставляется с jqgrid, потому что я хочу также изменить данные из других таблиц, относящихся к отредактированным записям.]

На этом этапе (reloadinggrid) вся сетка обновится и вернется в 1-ю строку , Затем мне нужно прокрутить вниз до строки 16 и нажать на нее. Это продолжается для последующих записей далее ...

Было интересно, есть ли какие-либо средства для того, чтобы сетка обновлялась с последними обновленными данными, И все же не возвращалась в первую строку, но продолжалась на номере строки, в котором мы просматриваем?

спасибо.

ответ

0

Есть ли необходимость перезагрузить сетку. Jqgrid по умолчанию ставит отредактированную строку на редактирование или удаляет удаленную строку из сетки при удалении. Итак, все, что требуется, - установить сетку перезагрузки на false. При редактировании/удалении информация отправляется на сервер, а затем вы можете соответствующим образом обновлять базу данных. При успехе сетка сама заменяет содержимое без перезагрузки содержимого.

Если перезагрузка сетки вызывается по умолчанию, она заменяет весь контент и, следовательно, элемент управления переходит к верхней первой строке.

Перезагрузка сетки желательно, если вы вставляете новую строку в базу данных, и вам нужен первичный ключ базы данных в сетке.

+0

Bec the grid служит только в качестве справочного материала для других данных. Вид пространственного ограничения, поэтому сетка не показывала все поля. Вместо этого я использую внешнюю форму для обновления данных и использует ajax для сохранения данных. Выполняя этот метод, ячейка сетки не обновляется. Поэтому, чтобы обновить ячейки, я сделал перезагрузку, которая извлекает данные из обновленной базы данных. В настоящее время я играю с setSelection. Я держу в голове, и после перезагрузки я делаю setSelection для строки, такую ​​помощь. но задается вопросом, есть ли другие способы. –

+0

Затем вы можете перейти к форме. set hidden = true для всех столбцов сетки, которые вы не хотите показывать в пользовательском интерфейсе, но также установите editable = true. Таким образом, когда вы открываете форму для редактирования определенной строки, вы видите все редактируемое содержимое в форме. – Ani

+0

Эта альтернатива возможна, хотя я не пробовал ее, потому что это будет связано со многими изменениями в существующем коде. Но теоретически это возможно. данные будут обновляться без необходимости обновления сетки. Таким образом, поддерживая строку и обновляя строку информации. Вероятно, попробует это, только когда переходить на верхние записи становится настолько невыносимым. Спасибо за предложение. –

Смежные вопросы