Ich bin neu bei jqGrid. Allerdings konnte ich erfolgreich eine Anwendung mit jqGrid entwickeln, hauptsächlich mit Hilfe von Olegs Antworten. Ich lade ein jqGrid basierend auf der Auswahl von Dropdown-Menü. Die Daten werden von einer Web-Service (asmx) Datei zurückgegeben. Der Code sieht etwa so aus
jQuery("#list").jqGrid({
url: '<%= ResolveClientUrl("OfficeData.asmx/GetSCFS_RO") %>',
editurl: '<%= ResolveClientUrl("OfficeData.asmx/SaveFPSUpdates") %>',
datatype: "json",
mtype: 'POST',
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
ajaxEditOptions: { contentType: 'application/json; charset=utf-8', dataType: 'json' },
serializeGridData: function (postData) {
// return null;
if (postData.OfficeId === undefined) { postData.OfficeId = 0; }
else {
postData.OfficeId = officeId;
}
return JSON.stringify(postData);
},
jsonReader: { repeatitems: false, root: "d.rows", page: "d.page",
total: "d.total", records: "d.records" },
colNames: ['FPSCode', 'Owners Name ', 'Licese_No', 'ShopAddress', 'Village',
'License Valid From', 'Valid To','FPS Type','WholeSalerName', 'Mobile'],
colModel: [{ name: 'FPSCode', index: 'FPSCode', width: 60, align: 'left',
editable:true, editrules:{required:true},
editoptions:{
dataInit: function(element) {
$(element).attr("readonly", "readonly");
}
}
},
......
Firebug zeigt den folgenden Post-Header an
Response Headers
......
Content-Type application/json; charset=utf-8
Date Tue, 20 Nov 2012 14:20:34 GMT
Server ASP.NET Development Server/10.0.0.0
X-AspNet-Version 4.0.30319
Request Headers
Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Cache-Control no-cache
Connection keep-alive
Content-Length 105
..........
Wie erwartet erhalte ich als Antwort ein JSON-Objekt.
Jedoch sendet das Formular-Submit immer Content-Type
als application/x-www-form-urlencoded; charset=UTF-8
Response Headers
Cache-Control private, max-age=0
Connection Close
Content-Length 95
Content-Type text/xml; charset=utf-8
Date Tue, 20 Nov 2012 14:20:46 GMT
Server ASP.NET Development Server/10.0.0.0
Request Headers
Accept */*
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Cache-Control no-cache
Connection keep-alive
Content-Length 254
Content-Type application/x-www-form-urlencoded; charset=UTF-8
Cookie ASP.NET_SessionId=utts2wlhdto4xhae34fzqkt4
Host localhost:18017
Pragma no-cache
Referer Account/FPSUpdate.aspx
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
X-Requested-With XMLHttpRequest
X-AspNet-Version 4.0.30319
Wie auf Stackoverflow vorgeschlagen habe ich verwendet
ajaxEditOptions: { contentType: 'application/json; charset=utf-8', dataType: 'json' } ,
Ich habe sogar versucht, ajaxEditoptions
zu verwenden bei
jQuery.extend(jQuery.jgrid.edit, {
ajaxEditOptions: { contentType: 'application/json; charset=utf-8', dataType: 'json' },
...
});
Allerdings gibt es keine Änderung im Content-Type
. Deshalb erhalte ich immer eine XML-Antwort vom Server für die Aktualisierung. Die Ausgabe vom Server lautet
Daten gespeichert
Ich kann den Mime-Typ nicht auf JSON festlegen. Bitte um Hilfe.