Быстрый и простой способ сделать это с помощью API jqGrid:
- Вызов
editRow
(который установит фокус на редактируемую строку)
- А затем сразу же позвоните
restoreRow
(потому что вы действительно не хотите редактировать строку)
В противном случае вы сможете использовать функцию focus
jQuery для установки фокуса на строку, например: jQuery("#" + row_id).focus()
- но я не проверял этот метод, поэтому YMMV.
На самом деле focus
не будет прокручивать div сетки. Но вы можете использовать следующий код, чтобы гарантировать, что сетка прокручивается так, что строка с данным id
является видимой:
function getGridRowHeight (targetGrid) {
var height = null; // Default
try{
height = jQuery(targetGrid).find('tbody').find('tr:first').outerHeight();
}
catch(e){
//catch and just suppress error
}
return height;
}
function scrollToRow (targetGrid, id) {
var rowHeight = getGridRowHeight(targetGrid) || 23; // Default height
var index = jQuery(targetGrid).getInd(id);
jQuery(targetGrid).closest(".ui-jqgrid-bdiv").scrollTop(rowHeight * index);
}