Après l’enregistrement ou la modification, JqGrid n’actualise pas les enregistrements.

J’utilise JqGrid pour lister, append, supprimer, éditer, trouver mes enregistrements. Quand je choisis le loadonce = false, il actualise normalement les enregistrements après la suppression, la modification ou l’ajout. Mais, pagination et la recherche mécanisim ne fonctionne pas. Une fois que j’ai choisi le loadonce = true, il actualise les enregistrements après la suppression, pas après l’ajout ou la modification. La pagination et la recherche s’effectuent ensuite normalement en mode loadonce = true. j’ai essayé le;

$("#list").setGridParam({datatype:'json', page:1}).sortinggger('reloadGrid'); 

ou

 afterInsertRow: function (rowid,rowdata,rowelem){ alert("hello"); // this wasnt invoked } 

mais ils n’ont pas résolu mon problème.

Quelle est la raison de mon problème.

Si vous utilisez loadonce: false vous devez implémenter la pagination, le sorting et la recherche côté serveur . Si la pagination et la recherche ne fonctionnent pas, vous n’avez pas implémenté les fonctionnalités de votre code de serveur actuel.

L’option reloadAfterSubmit spécifie si la grid sera rechargée après l’édition.

Si vous utilisez loadonce: true le datatype sera remplacé par 'local' après le premier chargement. Le problème est que jqGrid ne prend pas en charge l’édition de formulaire local. Vous devez donc implémenter la partie serveur pour Ajouter / Modifier / supprimer. Le problème est que le rechargement dans le cas sera exécuté en local et non à partir du serveur. Pour recharger les données du serveur après la fin de l’édition du formulaire, vous pouvez réinitialiser le datatype de datatype à l’état initial (‘json’ ou ‘xml’) dans le rappel afterSubmit . Dans le cas où le prochain rechargement (dans le cas de reloadAfterSubmit: true ) sera effectué à partir du serveur comme vous le souhaitez.

UPDATED : Le code suivant de afterSubmit devrait résoudre le problème:

 afterSubmit: function () { $(this).jqGrid("setGridParam", {datatype: 'json'}); return [true]; } 

Essayez ce code;

 afterSubmit: function () { location.reload(true); }