jquery jqgrid a.firstElementChild尝试在jqGrid中呈现行时出错

时间:2015-02-04 22:13:02

标签: jquery json jqgrid

我拉我的头发试图找出为什么从我的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;
&#13;
&#13;

网络方法:

&#13;
&#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;
&#13;
&#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。所以,我补充说:

&#13;
&#13;
    <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;
&#13;
&#13;

我想让这看起来正确。我确认我使用了4.7文件并更新了 src.js。但我仍然收到加载错误。

是否有一个简单的解决方案或链接,我可以下载作为基础,可以在IE中工作?

1 个答案:

答案 0 :(得分:0)

尝试在4.7版本中获得更好的性能时,这是一个错误。这是固定的。它即将在即将发布的4.8版本中发布