我拉我的头发试图找出为什么从我的webMethod返回的JSON在Firefox中工作但不是IE8。
所以,我去了基础知识,看看我是否可以在IE8中使用jqGrid并且它确实渲染。
如果我使用静态数据,例如:
using Newtonsoft.Json;
[WebMethod]
public static string GetProjects()
{
string sql = "SELECT PMID, Title FROM DBO.[GET_PROJECTS]";
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
DataSet ds = new DataSet();
using (conn)
{
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds);
return JsonConvert.SerializeObject(ds.Tables[0]); //Convert this into a json string
}
}

当我使用WebMethod时,分页器显示,大纲和列标题显示但记录没有显示,我无法弄清楚原因。我确定这是一个简单的解决办法,但我已经搜索了几天才能得到一个有效的例子。我下载的任何内容都不能在IE8中运行。
所以,下面是我的代码,任何人都可以看到我做错的方法吗?
link href="JQGridReg/Styles/ui.jqgrid.css" rel="stylesheet" />
<link href="JQGridReg/jquery-ui.css" rel="stylesheet" />
<%--<script type="text/javascript" src="common/Scripts/jquery-1.11.0.min.js"></script>--%>
<script type="text/javascript" src="common/Scripts/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="JQGridReg/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="JQGridReg/grid.locale-en.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$(document).ready(function () {
// $("#btnLoad").click(function(){
$.ajax({
url: "PMProjectAdmin.aspx/GetProjects", //webmethod
dataType: "json",
contentType: "application/json;charset=utf-8", //which type of content you want to post and retrieve from server
method: "POST",
success: function (result) {
alert(result.d);
result = result.d;
jQuery("#tblPMs").jqGrid({
datatype: "local",
colNames: ["PMID", "Title"],
colModel: [
{ name: "PMID", index: "PMID", width: 20, align: "center", sortable: true },
{ name: "Title", index: "Title", width: 200 }
],
data: JSON.parse(result), //Load Data
rowNum: 10, //Total records to show at a time by default
loadonce: true,
rowList: [5, 10, 20], //for paging
pager: "#divPMPager",
viewrecords: true,
sortorder: "asc",
gridview: true,
autowidth: true,
sortname: "PMID",
height: "auto",
altRows: true,
hoverrows: true,
caption: " Projects"
});
},
error: function (msg) { alert("Error: " + msg.responseText); }///error
});
});
</script>
&#13;
网络方法:
using Newtonsoft.Json;
[WebMethod]
public static string GetProjects()
{
string sql = "SELECT PMID, Title FROM DBO.[GET_PROJECTS]";
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
DataSet ds = new DataSet();
using (conn)
{
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds);
return JsonConvert.SerializeObject(ds.Tables[0]); //Convert this into a json string
}
}
&#13;
当弹出警报时,这是JSON字符串。我甚至尝试在网络方法中对其进行硬编码:
&#34; [{\&#34; PMID \&#34;:48,\&#34;标题\&#34;:\&#34; **** \&#34;} ,{\&#34; PMID \&#34;:83,\&#34;标题\&#34;:\&#34;标题#2 \&#34;},{\&#34; PMID \&#34;:61,\&#34;标题\&#34;:\&#34;标题#3 \&#34;}]&#34;
(移动评论)
谢谢@tony_tomov。我目前还没有包含jquery.jqGrid.src.js。所以,我补充说:
<link href="JQGridReg/Styles/ui.jqgrid.css" rel="stylesheet" />
<link href="JQGridReg/jquery-ui.css" rel="stylesheet" />
<script type="text/javascript" src="common/Scripts/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="JQGridReg/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="JQGridReg/jquery.jqGrid.src.js"></script>
<script type="text/javascript" src="JQGridReg/grid.locale-en.js"></script>
<script type="text/javascript" src="common/Scripts/json3.min.js"></script>
&#13;
我想让这看起来正确。我确认我使用了4.7文件并更新了 src.js。但我仍然收到加载错误。
是否有一个简单的解决方案或链接,我可以下载作为基础,可以在IE中工作?
答案 0 :(得分:0)
尝试在4.7版本中获得更好的性能时,这是一个错误。这是固定的。它即将在即将发布的4.8版本中发布