Après avoir Enregistrer ou Modifier JqGrid ne pas actualiser les enregistrements
Im en utilisant JqGrid pour lister, ajouter, supprimer, d'éditer, de trouver le mes dossiers. Lorsque je choisis l'loadonce=false, normalement actualiser les enregistrements après del, de modifier ou d'ajouter. Mais, d'échange et de recherche méchanisme d'identification ne fonctionne. Une fois que je choisis la loadonce=vrai, d'actualiser les enregistrements après le supprimer, pas après ajouter ou modifier. Et puis la pagination et de la recherche s'exécute normalement dans loadonce=true mode. j'ai essayé de l';
$("#list").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');
ou
afterInsertRow: function (rowid,rowdata,rowelem){
alert("hello"); //this wasnt invoked
}
mais ils n'ont pas de résoudre mon problème.
Quelle est la raison de mon problème.
- Mode de montage que vous utilisez: formulaire d'édition (par exemple les boutons ajoutés par
navGrid
) ou d'édition en ligne (par exemple les boutons ajoutés parinlineNav
)? C'est deux absolument différents codes de jqGrid qui travail différents. - Im en utilisant navGrid pas de modification intégrée mode
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez
loadonce: false
que vous avez à mettre en œuvre la pagination, de tri et de recherche sur le côté serveur. Si la pagination et de la recherche ne sont pas de travail, alors vous n'avez pas mis en œuvre les fonctionnalités de votre serveur actuel code.L'option
reloadAfterSubmit
spécifier si la grille doit être rechargé après le montage.Si vous utilisez
loadonce: true
ladatatype
sera changé à'local'
après la première charge. Le problème est que jqGrid ne prennent pas en charge locale d'édition de formulaire. Donc, vous avez à mettre en œuvre la partie serveur pour Ajouter/Modifier/supprimer. Le problème est que le rechargement dans le cas sera exécuté local et pas à partir du serveur. Pour recharger les données à partir du serveur après la fin du formulaire d'édition, vous pouvez réinitialiser ledatatype
à l'état initial ('json' ou 'xml') à l'intérieur deafterSubmit
de rappel. Dans le cas du prochain rechargement (en cas dereloadAfterSubmit: true
) sera faite à partir du serveur comme vous le souhaitez.Mis à JOUR: Le code suivant de afterSubmit devrait résoudre le problème:
$(this).setGridParam({datatype:'json'});
à l'intérieur deafterSubmit
rappel de la forme de l'édition comme je l'ai recommandé à ma réponse?afterSubmit
(voir la documentation). Les valeurs renvoyées pour "Ajouter", "Modifier" d'être différent. En cas d'opération d'Édition, vous pouvez utiliserafterSubmit:function(){ $(this).jqGrid("setGridParam", {datatype:'json'}); return [true];}
. Je pense que dans le cas dereloadAfterSubmit
on peut revenir;[true]
en cas d'opération d'Ajout de trop.http://www.ok-soft-gmbh.com/jqGrid/Ovilia.json?Name=Studen44&oper=edit&id=Student2
pour le serveur en tant que "mannequin" pour l'Édition de POST et ensuite recharger les données à partir du serveur.Essayer Ce Code;