Question

Nous utilisons le bouton de rechargement du navigateur jqGrid sur une grille avec l'ensemble de loadonce à true.

Le bouton reload actuellement ne date pas au serveur pour obtenir les données - comment pouvons-nous obtenir le reload pour aller au serveur pour obtenir les dernières données

Je crois que nous pouvons utiliser le beforeRefresh pour rappel ensemble la grille data à json au lieu de local mais je ne suis pas clair comment configurer la méthode même de beforeRefresh - Je ne comprends pas vraiment la documentation

.
Était-ce utile?

La solution

Vous n'êtes pas la seule personne qui a le problème. Je Answerd la même 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 rafraîchir la grille. Par exemple

jQuery("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');

MISE À JOUR : Pour appeler l'intérieur de la ligne de gestionnaire d'événements de BeforeRefresh vous pouvez le 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');
    }
  });

Je modifié un exemple de vieille question h. si vous cliquez sur le bouton de rafraîchissement que vous pouvez voir en direct comment le travail code.

2 À JOUR : gratuit jqGrid prend en charge de nouvelles options. événement reloadGrid supports paramètre fromServer: true qui peut être utilisé pour forcer le rechargement des données à partir du serveur et navGrid supports option reloadGridOptions qui peuvent être utilisés pour spécifier les options de reloadGrid utilisées sur cliquez sur le bouton Rafraîchir. Ainsi, le code ci-dessus pourrait être

$("#list").jqGrid("navGrid", {
    edit: false,
    add: false,
    del: false,
    search: false,
    reloadGridOptions: { fromServer: true }
});

Par une façon peut utiliser l'option de navOptions de jqGrid pour spécifier les options par défaut de navGrid (voir l'article wiki). Il permet d'écrire quelque chose comme code

$("#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");

Autres conseils

J'ai essayé la configuration suivante et il fonctionne.

<script type="text/javascript">
jQuery(function() {
    jq("#YOUR-GRID-ID").jqGrid({
        ...
        loadonce: true,
        ...
    });
    jQuery("#refresh_YOUR-GRID-ID").click(function(){
        jQuery("#YOUR-GRID-ID").setGridParam({datatype: 'json'});
        jQuery("#YOUR-GRID-ID").trigger("reloadGrid");
    });
});
</script>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top