Affichez les colonnes en tant que lignes en utilisant jqGrid

Existe-t-il un moyen d'afficher des colonnes en tant que lignes? Pour que le nombre de lignes représente le nombre de propriétés de l'objet que nous essayons d'afficher et le nombre de colonnes est le nombre d'enregistrements renvoyés (dans mon cas, il s'agit toujours d'un enregistrement).

Photo

Entrez la description de l'image ici

J'ai essayé de rechercher une réponse existante mais n'en ai pas trouvé une. J'ai également essayé d'utiliser les formateurs, mais je suppose qu'ils ne sont utilisés que pour formater une cellule spécifiée et non la table entière.

Je suppose que vous devez afficher les propriétés énumérables de l'objet (voir ici ) et les valeurs des propriétés. Le code correspondant pourrait être par exemple le suivant:

 var myobject = { prop1: "value1", prop2: 2, prop3: new Date(), prop4: true, prop5: function () { return "Hello world!"; }, prop6: null, prop7: { x: 1, y: 2, z: "some text"} }; $("#grid").jqGrid({ colModel: [ { name: "name", width: 80 }, { name: "type", width: 80 }, { name: "value", width: 400 } ], datatype: "jsonstring", datastr: myobject, jsonReader: { repeatitems: false, root: function (obj) { var prop, result = [], value; for (prop in obj) { if (obj.hasOwnProperty(prop)) { value = obj[prop]; result.push({ name: prop, type: $.type(value), value: $.type(value) === "object" ? JSON.stringify(value) : String(value) }); } } return result; }, }, iconSet: "fontAwesome", autoencode: true, rownumbers: true, cmTemplate: { autoResizable: true }, autoResizing: { compact: true }, viewrecords: true, pager: true }); 

La démo https://jsfiddle.net/OlegKi/euau0yqj/2/ utilise le code et affiche les résultats suivants

Entrez la description de l'image ici

La logique principale de la démo est dans jsonReader.root , qui devrait renvoyer le tableau avec les données. J'ai utilisé dans la démo free jqGrid , la fourchette de jqGrid, que je développe depuis un an, mais la fonctionnalité principale devrait également fonctionner avec les anciennes versions de jqGrid.