Выбор новой добавленной строки в jqGrid - PullRequest
0 голосов
/ 22 января 2020

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

Есть ли надежный способ выбрать последний ряд после перезагрузки сетки? Это код, который у меня есть сейчас, и сетка просто перезагружается, но последний идентификатор не определен. Перезагрузка триггера не выполняет обещания (тогда), поэтому я не могу подключиться к этому. Есть идеи?

 $('#mygridid').trigger('reloadGrid');    
 var lastRowId = $('#mygridid').find(">tbody>tr.jqgrow:last").attr('id');

Мы используем бесплатную версию 4.4.4.

1 Ответ

0 голосов
/ 23 января 2020

Вы можете попытаться добавить код, который вы разместили, к строке

$('#mygridid').jqGrid("setSelection", lastRowId, false, null);

Это должно работать, например, если вы перезагрузите локальную сетку. Если вы загружаете данные с сервера, то ваш код должен быть более безопасным, например, следующее:

var mySelectionLastRow = function () {
    this.p.selrow = null;
    this.p.selarrrow = [];
    if (this.rows.length > 1) {
        var lastRowId = this.rows[this.rows.length - 1].id;
        $(this).jqGrid("setSelection", lastRowId, false, null);
    }
    $(this).unbind(".myLastRowSelection", mySelectionLastRow);
};
$("#mygridid").bind("jqGridGridComplete.myLastRowSelection", mySelectionLastRow);
// ...
$("#mygridid").trigger("reloadGrid");

Приведенный выше код связывает событие jqGridGridComplete с функцией mySelectionLastRow перед запуском reloadGrid. Функция mySelectionLastRow выберет последнюю строку после завершения перезагрузки, а затем отвяжет себя. Таким образом, следующая перезагрузка сетки не выберет последний ряд. Если вам нужно каждый раз принудительно выбирать выделение при перезагрузке сетки, то вы можете удалить строку make с помощью вызова unbind и сделать указанную выше привязку до создания сетки. В результате mySelectionLastRow будет вызываться каждый раз, даже при первой загрузке сетки.

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