быстрый и простой способ сделать это с помощью API jqGrid заключается в следующем:
- Зов
editRow
(который будет установлен фокус редактируемой строки)
- А затем немедленно вызвать
restoreRow
(потому что вы не на самом деле не хотите редактировать строку)
в противном случае вы должны быть в состоянии использовать focus
функцию JQuery, чтобы установить фокус на строку, например: jQuery("#" + row_id).focus()
- но у меня нет t проверил этот метод, поэтому 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);
}
На самом деле, я хочу отредактировать строку, поэтому я просто оставлю ее в режиме редактирования - работает как шарм! – HitLikeAHammer
Спасибо, Джастин! единственная модификация, которую я должен сделать, это: .scrollTop ((rowHeight * index) -rowHeight), чтобы сделать видимой целевую строку. С уважением. – nerdcoder