J'ai un JQGrid sur une page et les utilisateurs peuvent cliquer sur un bouton pour ajouter une nouvelle ligne. S'il y a déjà assez de lignes sur la page pour remplir la partie visible de la grille, la nouvelle ligne est ajoutée et une barre de défilement apparaît, mais l'utilisateur doit faire défiler pour voir la nouvelle ligne. P>
Y a-t-il un moyen de le faire par programme? P>
3 Réponses :
Un moyen rapide et facile de faire cela à l'aide de l'API JQGRID est de:
éditrow code> (qui définira la mise au point sur la ligne modifiée) li>
- puis appelez immédiatement
restorerave code> (car vous ne voulez pas vraiment modifier la ligne) li>
ul> sinon, vous devriez pouvoir utiliser la fonction Focus code> de jQuery pour définir la mise au point de la ligne, par exemple: jQuery ("#" + rang_id) .FOCUS () code> - mais je n'ai pas testé cette méthode, donc ymmv. del> p> réellement focus code> ne fera pas défiler la grille DIV. Mais vous pouvez utiliser le code suivant pour garantir que la grille défile de telle sorte que la ligne avec un identifiant code> donné est visible: p> xxx pré> p>
En fait, je veux éditer la ligne, donc je vais simplement le laisser en mode édition - fonctionne comme un charme!
Merci Justin! La seule modification que je devrais faire est .Scrolltop ((Rowheight * Index) -rowheight) pour rendre visible la ligne cible. Salutations.
FYI: P>
J'ai trouvé cet exemple utile. http://gurarie.org/jqgrid.html à partir de cet article, http://www.trirand.com/blog/ ? Page_Id = 393 / Bugs / SetSelection-Not-Sauf-à-propos-Souled-to-the-Sélection-ligne P>
Mon problème était $ (TableInstance) .jqgrid ('SetSlyection', ID) CODE> n'a pas fonctionné même ScrollRows: true code> lorsque Hauteur: 'auto> code> dans jQgrid config. Je fixe une hauteur à une hauteur spécifique 20 et "SetSlyection" a fonctionné. La ligne sélectionnée était en vue de l'utilisateur. Super cool p>
//i. Set newly added row (with id = newRowId) as the currently selected row
$('#myGrid').jqGrid('setSelection', newRowId);
//ii. Set focus on the currently selected row
$("#" + $('#myGrid').jqGrid('getGridParam', 'selrow')).focus();