J'ai un jqGrid qui travaille avec des données JSON qui ont des objets imbriqués. J'utilise jsonmap pour définir le colmodel et ça marche bien; mais lorsque j'essaie d'éditer une ligne, le JSON transmis au serveur contient uniquement la propriété jsonmap et non l'objet entier, donc il n'est pas capable de mapper le JSON à un objet Java.Objets imbriqués dans jqGrid
Le JSON ressemble à ceci:
{'id': 1,
'name': 'blah',
'importantData':
{'importantDataId': 145,
'importantDataName': 'bleh'}
}
Le colmodel jqGrid ressemble à ceci:
{name:'id', label:'ID', editable: false},
{name:'name', label:'Name', editable: true},
{name:'importantData_name', label:'Important Data', jsonmap: 'importantData.importantDataName', editable: false}
Voir que ASPECT est non modifiable, mais doit être indiqué dans la grille et sous la forme . Comme je l'ai écrit, cela fonctionne bien et je vois "bleh" comme la valeur dans la colonne "Données importantes". Lorsque je clique sur le bouton d'édition de la grille de la barre de navigation, je vois le formulaire pour éditer les données avec les valeurs actuelles. ID n'est pas affiché (car il n'est pas modifiable), et importantData est affiché comme "bleh". Je change le nom sous la forme et enregistrer, le JSON envoyé au serveur ressemble à ceci:
{'id': 1,
'name': 'newName',
'importantData_name', 'bleh'}
Le serveur ne peut pas analyser ce JSON comme il attend de recevoir l'objet entier ou au moins ASPECT son ID .
J'ai configuré une fonction serializeEditData pour extraire l'objet entier de la grille et ajouter au JSON l'objet entier ou de ID, mais je ne peux pas obtenir l'ensemble de l'objet importantData. Une idée?
Merci d'avance!