Вы можете попытаться добавить код, который вы разместили, к строке
$('#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
будет вызываться каждый раз, даже при первой загрузке сетки.