Jqgrid 3.7 在 Internet Explorer 中不显示行 [英] Jqgrid 3.7 does not show rows in internet explorer
问题描述
我正在使用 ASP.NET 和 Jqgrid 3.7 进行测试,在 firefox 中它工作正常,但在 IE 中它不显示网格中的任何行.
I'm testing with ASP.NET and Jqgrid 3.7, in firefox it works fine but in IE it does not show any row in the grid.
来自网络服务的响应是
{"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 之前的版本和
I can't see where is the issue ..., with versions prior to 3.6 and with
thegrid.addJSONData(JSON.parse(jsondata.responseText).d);
它可以工作,而不是 jsonReader.
instead of jsonReader it works.
推荐答案
您应该首先使用 URL 中的完整路径(以 http://或至少以/开头).Internet Explorer 在使用相对 url 的情况下在很多情况下都会出错.
You should just use the full path in URL (started with http:// or at least with /) first of all. Internet Explorer works wrong in a lot of cases with relative urls.
一些更小的一般性评论.您可以使用 ajaxGridOptions: { contentType: 'application/json;charset=utf-8' }
而不是使用 loadBeforeSend
.其他一些默认值(参见 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options) 也可以删除.
Some more small general remarks. You can use ajaxGridOptions: { contentType: 'application/json; charset=utf-8' }
unstead of using loadBeforeSend
. Some other default values (see http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options) can be also removed.
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 数据减少到
Moreover you can reduce the JSON data to
{"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"]
]
}
}
并在jsonReader
的定义中添加poperty单元格:"":
and add in the definition of the jsonReader
the poperty cell: "":
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 在所有标准网络浏览器中都可以正常工作.
You can verify http://www.ok-soft-gmbh.com/jqGrid/Jqgrid37.htm and http://www.ok-soft-gmbh.com/jqGrid/Jqgrid37Comact.htm that all works without any problem in all standard web browsers.
这篇关于Jqgrid 3.7 在 Internet Explorer 中不显示行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!