Могу ли я изменить основной идентификатор строки в JQGrid без перезагрузки? - PullRequest
7 голосов
/ 17 декабря 2009

Я пытаюсь реализовать встроенную вставку в JQGrid. Мой подход до сих пор:

  • Используйте addRowData, чтобы поставить пустую строку в конце с ID = -1
  • Используйте editGridRow для редактирования этой строки
  • Определите на сервере, что это обновление является вставкой, потому что ID = -1, и верните новое значение идентификатора

Удивительно, но эта схема Рубе Гольдберга работает довольно хорошо. Однако, чтобы сделать его беспроблемным, я бы хотел молча обновить идентификатор только что добавленной строки, чтобы пользователь мог продолжить редактирование других столбцов. Я бы предпочел не делать grid.trigger("reloadGrid"), потому что я теряю фокус на этом ряду.

Я пытался

grid.setRowData(-1, { MyPrimaryKeyField: newID });

но это не работает (он все еще думает, что идентификатор строки равен -1). Существует ли простой способ изменить основной идентификатор строки без перезагрузки всей сетки?

Ответы [ 2 ]

7 голосов
/ 22 мая 2011

На самом деле вы не можете изменить идентификатор основной строки сетки с помощью "setRowData", но есть простой способ сделать это:

$("#-1").attr('id',newId);

; -)

2 голосов
/ 18 декабря 2009

Вы можете обойти это, сделав вызов AJAX, чтобы выполнить вставку и вернуть новый идентификатор. Получив идентификатор, вызовите reloadGrid, а затем выберите строку, используя только что возвращенный идентификатор. Вы также хотели бы установить спиннер, пока вы делаете это, чтобы пользователь знал, что ваша страница занята. Не совсем то, что вы просите, но оно должно отвечать вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...