Как программно выбрать верхнюю строку JQGrid?

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

jQuery("#mygrid").setSelection(rowid, true);

8 ответов


или, без использования API jqGrid, вы должны иметь возможность получить верхнюю строку, перейдя по DOM:

var top_rowid = $('#mygrid tbody:first-child tr:first').attr('id');

ответ выше был близок, но дело было. Должно быть:

$("#mygrid").getDataIDs()[0];

Это должно работать правильно.


jqGrid поддерживает setSelection метод его просто нужно правильно назвать:

var grid = jQuery("#mygrid"),
    ids = grid.jqGrid("getDataIDs");
if(ids && ids.length > 0)
    grid.jqGrid("setSelection", ids[0]);

 $("#mygrid").getDataIDs()[0]; // SO now requires 30 characters, so....

полный код, когда таблица имеет строки заголовка:

var top_rowid = $('#mygrid tr:nth-child(2)').attr('id'); 
$("#mygrid").setSelection(top_rowid, true);

я использовал следующие:

var grid = $('#list');
grid.jqGrid({
    ...
    gridComplete: function() {
        var ids = grid.jqGrid("getDataIDs");
        if(ids.length > 0) { 
            grid.jqGrid("setSelection", ids[0]);
        }
    },
    ...
});

когда у вас есть строка заголовка, попробуйте это:

var top_rowid = $('#mygrid tbody:first-child tr:nth-child(2)').attr('id');

Если у вас есть строка заголовка, попробуйте следующее:

$('#tb_par tbody:first-child tr:nth-child(2)').trigger("click");

Если не чем :

$('#mygrid tbody:first-child tr:first').trigger("click");

это непосредственно вызовет событие щелчка JqGrid.