我是jqGrid的新手。但是,成功地使用jqGrid主要借助Oleg的答案来开发应用程序。 我加载一个jqGrid的基础上下拉选择。数据是从Web服务(asmx)文件返回的。 的代码是一些这样的事jqGrid内容类型在表单编辑
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', 'Owner 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");
}
}
},
......
萤火虫显示以下帖子标题
响应头
......
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
请求头
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
..........
正如预期的那样,我得到的响应是JSON对象。
但是表单提交总是发送Content-Type
为application/x-www-form-urlencoded; charset=UTF-8
响应头
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
请求头
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
正如处为建议tackoverflow我用
ajaxEditOptions: { contentType: 'application/json; charset=utf-8', dataType: 'json' } ,
我想即使在
jQuery.extend(jQuery.jgrid.edit, {
ajaxEditOptions: { contentType: 'application/json; charset=utf-8', dataType: 'json' },
...
});
使用ajaxEditoptions
但是没有在Content-Type
没有变化。 因此,我总是从服务器获取更新的XML响应。从服务器的输出是
<string xmlns="http://tempuri.org/">Data Saved</string>
我无法修复,MIME类型为JSON。请帮忙。
谢谢,不用你的答案和代码我无法完成它。顺便说一句,我总是做一个谷歌,像JQGrid奥列格。刚才可以找出问题。在我的代码中有一个navGrid方法,它是.jqGrid('navGrid','#pager',{edit:true,add:false,del:false,refresh:true,search:true}, { closeAfterEdit:false }); });我觉得这是覆盖写入ajaxEditOptions的jQuery.jgrid.edit。因为当我将ajaxEditOptions放入navGrid方法的时候,它正在发送一个正确的哑剧。你怎么看? –
Dibs
您可以使用'.extend($ .jgrid.edit,{ajaxEditOptions:{contentType:“application/json”}});''或者您可以使用'.jqGrid('navGrid','#pager',{edit :true,add:false,del:false,refresh:true,search:true},{closeAfterEdit:false,ajaxEditOptions:{contentType:“application/json”}});'。 **这两种方式应该工作**。如果它不起作用,你可以发布我的网址与演示重现问题的演示。请在演示中使用'jquery.jqGrid.src.js'。 – Oleg
他们都应该工作。但是,如果同时使用(无意)与navGrid具有.jqGrid('navGrid','#pager',{edit:true,add:false,del:false,refresh:true,search:true},{closeAfterEdit :false和$ .extend有一个AjaxEditOptions。在我的情况下,它发送一个MIME类型的text/xml,当我删除$ .extend中的ajaxEditOptions,并将其放入navGid方法时,它开始发送正确的MIME,再次感谢Oleg。 – Dibs