Как удалить строку jqgrid без перезагрузки всей сетки? - PullRequest
1 голос
/ 17 октября 2011

У меня есть веб-страница с несколькими jqgrids, в каждом из которых включено встроенное редактирование, включен столбец «action» (значки редактирования) и отключен пейджер. Мне нужно обработать событие удаления для каждой строки, чтобы я мог обработать удаление без перезагрузки данных на стороне сервера. Я рассмотрел подход, упомянутый в jqGrid Delete a Row , и он очень полезен, за исключением того, что у меня два вопроса, которые ставят меня в тупик -

  1. Есть ли более подробная информация о параметре rp_ge в событии delOptions.onClickSubmit? В моем столбце задано значение delOptions -

delOptions: {onclickSubmit: function(rp_ge, rowid) {return onRowDelete(rp_ge,rowid);}},processing:true }},

Есть ли способ получить идентификатор сетки из этого события? Я хотел бы иметь универсальную функцию, которую я могу использовать для обработки событий удаления из всех сеток на странице. Параметр rp_ge имеет gbox, к которому иногда добавляется идентификатор сетки? Но я понятия не имею, что это такое, потому что я не могу понять, когда он заселен, а когда нет.

function onRowDelete(rp_ge, rowid) {
 //hardcoded grid id.. don't like it.
 var gridid = '#Grid_X';
 //what is this gbox?? can i get grid id predictable from it?
 //var gridid = rp_ge.gbox.replace("#gbox_", "");
 var grid = $('#Grid_X');
 rp_ge.processing = true;
 var result = grid.delRowData(rowid);
 if (result) {
    $("#delmod" + grid[0].id).hide();
 }
 return true;
}
  1. В подходе jqGrid Delete a Row код $("#delmod"+grid[0].id).hide(); скрывает всплывающее диалоговое окно подтверждения удаления вручную. Я заметил, что при появлении диалогового окна jqgrid снимает выделение с фоновой страницы (делает ее светло-серой). Но после того, как всплывающее окно закрыто вручную (скрыто на самом деле?), Фон остается не подчеркнутым. Похоже, страница не имеет фокуса (или даже отключена). В любом случае это можно исправить? Это также можно увидеть в демоверсии , которую Олег написал.

Любая помощь будет оценена. (PS - Я бы прокомментировал этот же пост, но у меня недостаточно очков, чтобы комментировать чужой ответ.)

1 Ответ

0 голосов
/ 29 августа 2012

В ответ на ваш второй пункт. Несколько примеров Oleg , таких как this , имеют следующую модификацию.

 $("#delmod" + grid[0].id).hide();

заменяется на

$.jgrid.hideModal(
    "#delmod"+grid_id, 
    {gb:"#gbox_"+grid_id,jqm:rp_ge.jqModal,onClose:rp_ge.onClose}
);

Это вернет фокус после операции удаления.

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