Controller-Code:jqGrid v4 - dynamische Spalte nicht funktioniert
public JsonResult GetGridColumn()
{
var jsonData = new
{
colNames = "['actname']",
colModel = "[{ name: 'actionTaken'}]",
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
}
Code anzeigen:
$(document).ready(function() {
$.ajax({
type: "POST",
url: "/GetForm/GetGridColumn",
data: "",
datatype: "json",
success: function (data) {
colN = data.colNames;
colM = data.colModel;
$("#taskGrid").jqGrid({
url: "someurl",
datatype: 'jsonstring',
mtype: 'POST',
colNames: colN,
colModel: colM,
pager: jQuery('#pager'),
rowNum: 10,
rowList: [10, 20, 30, 40],
height: '100%',
viewrecords: true,
width: 1250,
jsonReader: {
cell: "",
id: "0"
}
})
}
});
});
I coln als [ 'actname'] und Colm erhalten, wie [{name: 'actionTaken'} ]. Wenn ich das obige Skript ausführe, bekomme ich diesen Fehler Länge der colNames <> colModel!
versuche etwas wie 'var jsonData = neu {colNames = neu [] {" aktname "}, colModel = neu [] {neu {name =" actionTaken "}}};' In jedem Fall 'jsonData.colNames' und 'jsonData.colModel' sollte ** Arrays ** und keine Zeichenfolgen sein. jqGrid überprüft, dass beide Arrays die gleiche Anzahl von Elementen haben, aber Sie verwenden 'colNames' und' colModel' als Strings und den Test 'if (p.colNames.length! == p.colModel.length) {' vergleicht die Länge von die Saiten in deinem Fall. Es ist der Grund für eine missverständliche Fehlermeldung. – Oleg
Vielen Dank Oleg. Ich habe meine jasonData wie oben beschrieben geändert und es hat funktioniert !! – priya
Gern geschehen! Ich habe die gleichen Informationen wie die Antwort gepostet. – Oleg