J’ai un JSON avec une propriété ayant le point “.” opérateur en elle. Lorsque je tente de rendre ma grid, elle apparaît comme vide (sans erreur).
Voici mon JSON:
{ "total":1, "page":1, "records":2, "rows":[{ "id":2110040, "cell":{ "function.code":"dsadad", "service.name":"dsadasda" } }, { "id":2115040, "cell":{ "function.code":"iuiyuiy", "service.name":"iyuiyuiy" } } ] }
c’est mon colModel
colModel : [ { name : 'service.name', search : 'true', editable : true, //index : 'service.name', width : 200, jsonmap : "cell.service.name" }, { name : 'function.code', search : 'true', editable : true, sortable:true, //index : 'function.code', width : 200, jsonmap : "cell.function.code" }],
Le lecteur JSON est:
jsonReader : { repeatitems : false, root : "rows", cell : "cell", id : "id", page : "page", records : "records" },
S’il vous plaît aider, ce qui me manque ici?
Merci!
Je trouve votre question intéressante. C’est proche du problème décrit ici , mais dans le cas de JSON au lieu de XML.
Le problème est que jqGrid essaie de lire les lignes en respectant obj.cell.function.code
au lieu de obj.cell['function.code']
. Pour que jqGrid puisse lire les données correctement, vous pouvez utiliser des fonctions comme jsonmap
:
colModel: [ { name: 'service_name', search: 'true', editable: true, width: 200, jsonmap: function (obj) { return obj.cell['service.name']; } }, { name: 'function_code', search: 'true', editable: true, sortable: true, width: 200, jsonmap: function (obj) { return obj.cell['function.code']; } } ]
Comment vous pouvez voir sur la démo le travail d’approche.
Essaye ça
colModel : [ { name : 'service.name', search : 'true', editable : true, //index : 'service.name', width : 200, jsonmap : 'cell["service.name"]' }, { name : 'function.code', search : 'true', editable : true, sortable:true, //index : 'function.code', width : 200, jsonmap : 'cell["function.code"]' }],