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.
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 reloadGridOptions
navGrid
, 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.
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
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 !
$("#shoppingCatalog").jqGrid('GridUnload');
va supprimer la structure et puis votre code peut reconstruire la grille avec les données du prochain appel serveur.