Eine schnelle und einfache Möglichkeit, dies mit dem jqGrid API zu tun ist:
- Anruf
editRow
- Und dann sofort
restoreRow
nennen (die den Fokus auf die bearbeitete Zeile gesetzt werden) (weil Sie nicht tun wirklich will, um die Zeile)
Andernfalls sollten Sie in der Lage zu bearbeiten jQuery focus
Funktion zu setzen den Fokus auf die Reihe zu verwenden, zum Beispiel: jQuery("#" + row_id).focus()
- aber ich habe keine t testete diese Methode, also YMMV.
Eigentlich focus
wird nicht scrollen das div. Aber Sie können den folgenden Code zu gewährleisten, verwenden, dass die Gitterrollen, so dass die Zeile mit einer bestimmten id
sichtbar ist:
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);
}
Eigentlich möchte ich die Zeile bearbeiten, so dass ich es nur im Bearbeitungsmodus verlassen werde - funktioniert wie ein Charme! – HitLikeAHammer
Danke Justin! Die einzige Änderung, die ich tun sollte, ist .scrollTop ((rowHeight * index) -rowHeight), um die Zielzeile sichtbar zu machen. Grüße. – nerdcoder