6
votes

Existe-t-il un moyen de faire défiler JQGRID en bas lorsqu'une nouvelle ligne est ajoutée?

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.

Y a-t-il un moyen de le faire par programme?


0 commentaires

3 Réponses :


11
votes

Un moyen rapide et facile de faire cela à l'aide de l'API JQGRID est de:

  • appel éditrow (qui définira la mise au point sur la ligne modifiée)
  • puis appelez immédiatement restorerave (car vous ne voulez pas vraiment modifier la ligne)

    sinon, vous devriez pouvoir utiliser la fonction Focus de jQuery pour définir la mise au point de la ligne, par exemple: jQuery ("#" + rang_id) .FOCUS () - mais je n'ai pas testé cette méthode, donc ymmv.

    réellement focus 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 donné est visible: xxx


2 commentaires

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.



-1
votes

FYI:

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

Mon problème était $ (TableInstance) .jqgrid ('SetSlyection', ID) n'a pas fonctionné même ScrollRows: true lorsque Hauteur: 'auto> 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


0 commentaires

0
votes
//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();

0 commentaires