Vous n'êtes pas la seule personne qui a le problème. J'ai répondu à the same question avant. Pour recharger le contenu de la grille à partir du serveur, vous devez réinitialiser le paramètre datatype
à la valeur d'origine "json" ou "xml", puis actualiser la grille. Par exemple
jQuery("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
MISE À JOUR: Pour appeler la ligne à l'intérieur du beforeRefresh gestionnaire d'événements, vous pouvez faire suivant
jQuery("#list").jqGrid('navGrid','#pager',
{ edit:false,view:false,add:false,del:false,search:false,
beforeRefresh: function(){
alert('In beforeRefresh');
grid.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
}
});
J'ai modifié un exemple de vieille question h. Here si vous cliquez sur le bouton d'actualisation, vous pouvez voir en direct comment le code fonctionne.
MISE À JOUR 2: Free jqGrid prend en charge de nouvelles options. reloadGrid
événement prend en charge fromServer: true
paramètre qui peut être utilisé pour forcer le rechargement des données du serveur et navGrid
prend en charge l'option reloadGridOptions
qui peut être utilisé pour spécifier les options de reloadGrid
utilisé en cliquant sur le bouton Actualiser. Ainsi, le code ci-dessus pourrait être
$("#list").jqGrid("navGrid", {
edit: false,
add: false,
del: false,
search: false,
reloadGridOptions: { fromServer: true }
});
Par ailleurs, on peut utiliser l'option navOptions
de jqGrid pour spécifier les options par défaut de navGrid
(voir l'article wiki). Il permet d'écrire le code quelque chose comme
$("#link").jqGrid({
// all typical jqGrid parameters
datatype: "json", // or "xml"
loadonce: true,
pager: true, // no empty div for page is required
navOptions: {
edit: false,
add: false,
del: false,
search: false,
reloadGridOptions: { fromServer: true }
}
}).jqGrid("navGrid");
Merci - Comment pouvez-vous exécuter ce code lorsque vous cliquez sur le bouton de rechargement? Je ne comprends pas comment configurer la barre de navigation pour exécuter la méthode 'beforeRefresh' si c'est ce à quoi vous faites allusion. –
@Marcus: Si c'est très facile. Je inclut le code correspondant dans ma réponse. – Oleg
@Oleg, j'ai essayé de le faire, mais une fois que je clique sur le bouton d'actualisation, la pagination ne fonctionne pas. –