解决方法
找到你的职位,而我正在为我的项目做这个.我得到它的工作对于将来需要它的任何人来说,jqGrid将无法使用JSON和ASP.NET开箱即用.您需要对grid.base.js.进行几个小的修改.在第829行,用以下内容替换json案例部分:
case "json": gdata = JSON.stringify(gdata); //ASP.NET expects JSON as a string $.ajax({ url: ts.p.url,type: ts.p.mtype,dataType: "json",contentType: "application/json; charset=utf-8",//required by ASP.NET data: gdata,complete: function(JSON,st) { if (st == "success") { addJSONData(cleanUp(JSON.responseText),ts.grid.bDiv); if (loadComplete) { loadComplete(); } } },error: function(xhr,st,err) { if (loadError) { loadError(xhr,err); } endReq(); },beforeSend: function(xhr) { if (loadBeforeSend) { loadBeforeSend(xhr); } } }); if (ts.p.loadonce || ts.p.treeGrid) { ts.p.datatype = "local"; } break;
function cleanUp(responseText) { var myObject = JSON.parse(responseText); //more secure than eval return myObject.d; //ASP.NET special }
您还需要包括JSON parser and stringifier.除了使用ASP.NET,此修改后的代码也是more secure,因为eval语句已经消失.
编辑:我还应该注意到,您可能需要对grid.celledit.js,grid.formedit.js,grid.inlinedit.js和grid.subgrid.js进行类似的编辑.