JQGrid Программно выберите Grid Row

У меня JQGrid с loadonce: true (так это все клиентская сторона) и пейджинг включен (с, скажем, 20 страниц).

Я хотел бы указать строку (программно, без ввода пользователя) и настроить мою сетку на соответствующую страницу, чтобы выбрать указанную строку.

Возможно ли это с текущим JQGrid?

Я искал поиск и фильтр, но это просто перезагружает сетку новыми строками – мне нужна моя grid, чтобы перейти к правильной странице. Сохраняя ее данные и структуру.

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

Поскольку вы используете loadonce:true , тогда вы готовите данные на сервере. На стороне сервера вы можете решить, какая строка должна быть выбрана. На стороне сервера вы также можете легко вычислить, на какой странице будет выбранная строка. Идентификатор выбранной строки и выбранной страницы, к которой вы можете, например, включать как часть пользовательских данных. Таким образом, данные, отправленные с сервера, выглядят следующим образом:

 { "total": 5, "page": 1, "records": 107, "rows": [ ... ], "userdata": { "page": 3, "selId": 24 } } 

Внутри loadComplete вы можете сделать следующее

 loadComplete: function(data) { if (jQuery("#list").getGridParam('datatype') === "json") { // data.userdata is the same as jQuery("#list").getGridParam('userData'); var userdata = jQuery("#list").getGridParam('userData'); var curPage = jQuery("#list").getGridParam('page'); // is always 1 if (curPage !== userdata.page) { setTimeout(function(){ jQuery("#list").setGridParam( { page: userdata.page }).trigger("reloadGrid"); jQuery("#list").setSelection (userdata.selId, true); },100); } else { jQuery("#list").setSelection (userdata.selId, true); } } } 

Рабочие примеры вы можете увидеть на http://www.ok-soft-gmbh.com/jqGrid/DataToSelect.htm и http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect.htm .

UPDATE : бесплатный jqGrid поддерживает multiPageSelection:true вариант strarting с версией 4.10.0. Опция позволяет очень легко выбирать выбор нескольких строк в сетке (и она работает очень быстро, потому что она задает состояние выбора непосредственно при создании тела сетки). См. Ответ и демонстрацию и readme к 4.10.0 .

Давайте будем гением компьютера.