2017-06-21 5 views
1

Ich möchte eine jqgrid mit dem unten json und die unten json kann häufig ändern.Wie binden Sie dynamisch Zeilen und Spalten in JqGrid?

{ "RowValue": [ { "Gesellschaft": "test", "Preis": 98, "Change": 8, "perchange": 8, "Lastupdated": "2" , "CompanyID": 2 }, { "Unternehmen": "test123", "Preis": 1, "Change": 1, "perchange": 1, "Lastupdated": "1" , "companyid": 3 }, { "Firma": "abc", "Preis": 1234, "Change": 123, "perchange": 1, "Lastupdated": "1", "CompanyID": 1 } ]}

Hier ist mein Code:

$("#table_div"+chartId).empty().jqGrid({ 
    datatype:'json', 
    data: data, 
     jsonReader: { 
      repeatitems: false, 

     }, 
     colNames: getColNames(data), 
     colModel: getColModels(data), 
     rowNum:50, 
     rowList: [50, 100, 150, 200], 
     autowidth: true, 
     height: '100%', 
     shrinkToFit: false, 
     gridview: true, 
     autoencode: true, 
     sortorder: "asc", 
     viewrecords: true, 
     ignoreCase: true, 
     hoverrows: true, 
     caption: title 
}); 

function getColNames(data) { 
var keys = []; 
for(var i=0;i<data.rowValue.length;i++){ 
    for(var key in data.rowValue[i]) { 
    if (data.rowValue[i].hasOwnProperty(key)) { 
     keys.push(key); 
    } 
} 
break; 
} 
return keys;} 
function getColModels(data) { 
var colNames= getColNames(data); 
var colModelsArray = []; 
for (var i = 0; i < data.rowValue.length; i++) { 
    var str; 
    if (i === 0) { 
     str = { 
      name: colNames[i], 
      index:colNames[i], 
      key:true, 
      editable:true 
     }; 
    } else { 
     str = { 
      name: colNames[i], 
      index:colNames[i], 
      editable:true 
     }; 
    } 
    colModelsArray.push(str); 
} 
console.log(colModelsArray) 
return colModelsArray;} 

Ich bin erfolgreich Spalten zu bekommen wie. aber ich habe ein Problem, Colmodels zu bekommen. Ich bin ein Neuling in Javascript. Jede Hilfe wäre willkommen. Hinweis: rowValue wird dynamisch geändert Vielen Dank im Voraus!

Antwort

0

---- ColName ----- var colName = Object.keys (Daten ["rowvalue"] [0]);

Bitte fügen Sie Rest der Eigenschaften im ColModel gemäß Ihrer Bedingung hinzu.

+0

Ich benutzte andere Methoden, um die Daten zu exportieren. Ich habe ein anderes Problem in Jqgrid, das in vielen Foren diskutiert wurde, aber ich bekomme keine klare Sicht. Ich exportiere die gefilterten Daten, aber es exportiert nur von Seite 1, aber nicht von anderen Seiten. Kann mir jemand dabei helfen ?? – Xyz

+0

Ich habe auch die Lösung, anstatt die Daten mit jqgrid herunterladen, rufen Sie eine Funktion aus dem Download-Button und alle Daten in einer Variable in jqgrid zeigen, laden Sie die gesamten Daten. – Shiladitya

+0

Sie haben vollständige Daten des Gitters in "Variable" Daten, Sie können es verwenden, um die Daten zu exportieren. – Shiladitya

Verwandte Themen