jqGrid программно перемещается к следующей / предыдущей строке - PullRequest
2 голосов
/ 21 июня 2011

Когда у меня есть выбранная строка в моей jqgrid, и у меня есть кнопки с надписью «Next» и «Previous», как мне это сделать программно? После первоначального исследования мне нужно получить идентификаторы строк, но есть ли способ сделать это, просто используя индекс текущей выбранной строки в сетке?

Идентификаторы в моих строках не являются последовательными и имеют случайные значения.

Спасибо

Ответы [ 3 ]

3 голосов
/ 04 сентября 2011
$('#btnNext').click(function () {

  var grid =  $("#grid").jqGrid({...});

  var selectedRow = grid.getGridParam('selrow');
  if (selectedRow == null) return;

  var ids = grid.getDataIDs();
  var index = grid.getInd(selectedRow);

  if (ids.length < 2) return;

  index++;

  if (index > ids.length)
    index = 1;

  grid.setSelection(ids[index - 1], true);

});
0 голосов
/ 21 августа 2011
var rowId;
var previousRecord = false;
var array;

function initGrid() {

    array = $(ProspectsGrid).jqGrid('getDataIDs');

    var i = 0;

    if (previousRecord == true)
        i = array.length-1;



    $(ProspectsGrid).setSelection(array[i]);

    rowId = array[i];

}


function GetNextRecord() {



    previousRecord = false;

    if (rowId != array[array.length - 1]) {
        var i = 0;
        while (rowId != array[i]) {
            i++;

        }
        i++;
        $(ProspectsGrid).setSelection(array[i]);
        rowId = array[i];
    }
    else {

        var currentPage = ProspectsGrid.getGridParam("page");
        if (currentPage < ProspectsGrid.getGridParam("lastpage")) {
            ProspectsGrid.setGridParam({
                page: currentPage + 1

            });
            ProspectsGrid.trigger("reloadGrid");
        }
    }
}

function GetPreviousRecord() {
    previousRecord = true;
    if (rowId != array[0]) {



        var i = 0;
        while (rowId != array[i]) {
            i++;

        }
        i--;
        $(ProspectsGrid).setSelection(array[i]);
        rowId = array[i];
    }
    else {
        var currentPage = ProspectsGrid.getGridParam("page");
        if (currentPage > 1) {
            ProspectsGrid.setGridParam({
                page: currentPage - 1

            });
            ProspectsGrid.trigger("reloadGrid");
        }
    }
}
0 голосов
/ 21 июня 2011

Согласно http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events, есть свойство индекса строки, но оно не передается в событие onSelectRow.Возможно, вы могли бы добраться до объекта строки через его идентификатор и проверить, имеет ли он индекс строки, возможно, с именем iRow .Оттуда вам просто нужно будет найти следующую строку по индексу строки iRow + 1.

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