jqgrid reloadGrid avec loadonce définie sur true

j'utilise deux jqgrids en une page. deuxième grille, j'ai utilisé loadonce: true puisque j'ai besoin de trier les colonnes dans la deuxième grille. j'ai besoin de recharger les deux grilles après un serveur de publication. (nécessité de montrer la valeur mise à jour dans la deuxième grille). première grille recharger amende car il ne sera pas utiliser le loadonce l'attribut. ma question Est de savoir si nous pouvons utiliser loadonce l'attribut reloadGrid ensemble? ( par le paramètre loadonce attribut dynamiquement à la grille) ou bien dois-je aller pour un tri côté serveur dans ce cas? s'il vous plaît conseils. Grâce préalablement.

18
demandé sur Sam 2011-03-22 23:50:33

4 réponses

Si vous utilisez loadonce:true jqGrid modifier le datatype Paramètres À 'local' après la première charge de données de la grille. Tout le prochain rechargement de grille (tri, paging, filtrage) fonctionne localement. Si vous voulez rafraîchir les données de la grille du serveur une fois de plus, vous devez définir datatype à sa valeur originale ('JSON 'ou'xml'). Par exemple:

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

mise à jour:Libre jqGridfromServer: true option de reloadGrid départ avec la première version (à partir avec la version 4.8). On peut donc utiliser le code comme

$("#list").trigger("reloadGrid", { fromServer: true, page: 1 });

pour faire la même chose que ci-dessus. Le principal avantage: un tel code fonctionne très bien avec n'importe quelle valeur initiale de datatype ("json","jsonp","xml" et ainsi de suite). Free jqGrid sauve la valeur originale de datatype à l'intérieur de l'intérieur dataTypeOrg avant de le changer "local".

une autre option utile de jqGrid libre est le paramètre reloadGridOptionsnavGrid, qui permet de spécifier les options par défaut de reloadGrid. Ainsi, on peut utiliser par exemple,

loadonce: true,
navOptions: { reloadGridOptions: { fromServer: true } }

options de jqGrid, définir les paramètres par défaut navGrid en outre. En conséquence, le clic sur le bouton "Recharger" de la barre de navigation va recharger la grille à partir du serveur au lieu de recharger localement.

68
répondu Oleg 2015-10-21 09:54:08

Nice a essayé pendant une semaine, la solution est parfaite utilisez

jQuery("#datalist").jqGrid().setGridParam(
    {
        datatype:'xml', 
        page:1, 
        url : '<%=request.getContextPath()%>/PreviewReport?cmd=1&fromdate='+vfromDate+'&todate='+vtoDate+'&status='+vstatus+'&keyword='+vkeyword+'&mdn='+vmdn+'&filetype='+vfiletype
    }
).trigger("reloadGrid");

pour recharger les données en utilisant loadonce:false

0
répondu Kiran Jujare 2013-02-26 13:01:13

Juste pour dire, pour moi, la ligne suivante n'était pas assez, pour actualiser les données dans mon loadonce:true jqGrid:

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

après avoir appelé cette ligne, j'ai essayé d'appeler mon code qui a chargé mes données JSON et a rempli le jqGrid avec ça, mais ça ne rafraîchit pas les lignes de ma grille.

ma solution a été de forcer décharger le jqGrid, et appeler ma fonction pour la recréer.

$("#MikesGrid").jqGrid('GridUnload');

peut-être que j'étais juste malchanceux.

Btw, quand je reçois une chance, je vais vous décrire comment j'ai écrit un générique fonction JavaScript à ajouter deux boutons à tout jqGrid, l'un pour actualiser l' (loadonce) de données, et un deuxième bouton pour exporter les jqGrid de données en un véritable fichier Excel, à l'aide de ma bibliothèque:

exporter jqGrid vers un fichier Excel

j'aime le code réutilisable !

0
répondu Mike Gledhill 2015-01-15 11:52:16
$("#shoppingCatalog").jqGrid('GridUnload');

va supprimer la structure et puis votre code peut reconstruire la grille avec les données du prochain appel serveur.

0
répondu Naga Veerendra Parvataneni 2017-02-25 15:32:35