我正在使用ASP.NET和Jqgrid 3.7进行测试,在firefox中它可以正常工作,但在IE中它不会在网格中显示任何行。
来自Web服务的响应是
{"d": {"__type":"jqGrid", "total":"1", "page":"1", "records":"10", "rows":[ {"id":"180","cell":["180","Cultura"]}, {"id":"61","cell":["61","Deporte"]}, {"id":"68","cell":["68","Deporte"]}, {"id":"5","cell":["5","Economía"]}, {"id":"67","cell":["67","Economía"]}, {"id":"76","cell":["76","Economía"]}, {"id":"178","cell":["178","Economía"]}, {"id":"4","cell":["4","Entrevista"]}, {"id":"66","cell":["66","Entrevista"]}, {"id":"78","cell":["78","Entrevista"]} ] } }
电话是
myGrid = $("#list").jqGrid({ url: 'ws/WsNoticias.asmx/jqObtenerTemas', datatype: 'json', mtype: 'GET', loadBeforeSend: function(XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Content-Type", "application/json"); }, colNames: ['Id', 'Nombre'], colModel: [ {name: 'Id', index: 'Id', width: 20, align: 'left', editable: false}, {name: 'Nombre', index: 'Nombre', width: 200, align: 'left', editable: false} ], rowNum: 10, rowList: [5, 10, 200], sortname: 'Nombre', sortorder: "asc", pager: $("#listp"), viewrecords: true, caption: '', width: 600, height: 250, jsonReader: { root: "d.rows", page: "d.page", total: "d.total", records: "d.records" } });
我看不到问题出在哪里…,使用3.6之前的版本以及
thegrid.addJSONData(JSON.parse(jsondata.responseText).d);
而不是jsonReader它可以工作。
首先,您应该只使用 URL中 的 完整路径 (以http://或至少以/开头)。Internet Explorer在很多情况下都使用相对URL会出错。
一些更小的一般性评论。您可以使用而ajaxGridOptions: { contentType: 'application/json; charset=utf-8' }不是loadBeforeSend。也可以删除其他一些默认值(请参阅http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options)。
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' }
loadBeforeSend
myGrid = $("#list").jqGrid({ url: 'http://www.ok-soft-gmbh.com/jqGrid/Jqgrid37json.txt', datatype: 'json', mtype: 'GET', ajaxGridOptions: { contentType: 'application/json; charset=utf-8' }, colModel: [ { name: 'Id', width: 20 }, { name: 'Nombre', width: 200 } ], rowNum: 10, rowList: [5, 10, 200], sortname: 'Nombre', sortorder: "asc", pager: $("#listp"), viewrecords: true, width: 600, height: 250, jsonReader: { root: "d.rows", page: "d.page", total: "d.total", records: "d.records" } });
此外,您可以将JSON数据简化为
{"d": {"__type":"jqGrid", "total":"1", "page":"1", "records":"10", "rows":[ ["180","Cultura"], ["61","Deporte"], ["68","Deporte"], ["5","Economía"], ["67","Economía"], ["76","Economía"], ["178","Economía"], ["4","Entrevista"], ["66","Entrevista"], ["78","Entrevista"] ] } }
并添加jsonReaderpoperty单元格的定义:“”:
jsonReader
jsonReader: { root: "d.rows", page: "d.page", total: "d.total", cell: "", records: "d.records" }
您可以验证http://www.ok-soft-gmbh.com/jqGrid/Jqgrid37.htm和http://www.ok-soft- gmbh.com/jqGrid/Jqgrid37Comact.htm都可以正常工作标准的网络浏览器。