En général, l'utilisation de userData
est assez simple. jqGrid vous permet d'envoyer à partir du serveur des données supplémentaires qui seront enregistrées avec les données jqGrid. Donc, si jqGrid analyse les données renvoyées par le serveur, alors il cherche simplement userdata
(pas pour userData
!!!) et sauvegarder est dans le paramètre interne userData
.
{ "total":25,
"page":1
"records":107,
"userdata": {"foo": "bar"},
"rows": [...] }
Attention: la propriété par défaut dans les données d'entrée doit être userdata
et PASuserData
comme vous actuellement. Vous pouvez remplacer le nom par défaut de la propriété d'entrée jsonReader: {userdata: "userData"}
ou jsonReader: {userdata: "myData"}
si vous utilisez userData
ou myData
comme nom de propriété avec votre additional data.
Un de l'utilisation standard de userData
est pour displaying of the footer dans le jqGrid. Vous pouvez utiliser les données pour vos autres propositions. Dans another answer, il est montré comment utiliser userData
pour sélectionner la ligne/lignes directement après le chargement des données du serveur.
Si vous utilisez le paramètre loadonce:true
, l'utilisation de userData
sera un peu plus délicat car après la première charge les données du paramètre userData
seront supprimés, de sorte que vous devez y enregistrer dans l'objet externe.
De cause, vous pouvez accéder au userData
en ce qui concerne jQuery("#grid").getGridParam('userData')
seulement après le chargement des données. Donc, vous devriez le faire à l'intérieur de loadComplete gérer des événements ou plus tard. Par le biais de la poignée d'événement loadComplete à l'intérieur, vous pouvez accéder à toutes les données qui vous sont envoyées à partir du serveur par l'intermédiaire du paramètre data
de l'événement loadComplete. Vous pouvez donc lire d'autres données supplémentaires et les enregistrer quelque part.
Merci.Au cas où quelqu'un le lirait plus tard, le résumé est que, quand on parle d'un GridParam, c'est 'userData', sinon c'est' userdata'. Lit 'userdata' dans le gestionnaire d'événements' loadComplete'. Pour définir 'postData' avec' userdata', faites ceci: 'loadComplete: function (données) {jQuery (" # ticketlist "). SetGridParam ({postData: {foo2: data.userdata.foo}})}' – royco
@Slack : Vous pouvez également utiliser 'jQuery (" # grid "). GetGridParam ('userData')' à l'intérieur de 'loadComplete' comme' loadComplete: function() {jQuery ("# ticketlist"). SetGridParam ({postData: {foo2: jQuery ("# grid"). getGridParam ('userData'). foo}});} '. Il est seulement important de comprendre que dans les données envoyées par le serveur, il faut placer 'userdata' et les données seront sauvegardées dans le paramètre' userData' de jqGrid. Il peut donc être accessible via 'getGridParam ('userData')'. Mais le plus important, que maintenant votre programme fonctionne et peut utiliser 'userdata' /' userData'. :-) – Oleg
homme J'ai utilisé userData au lieu de userdata dans le générateur json et je suis devenu fou, merci beaucoup! +1 – Neo