【问题标题】:jqGrid call restful service successfully but failed to show the jqGrid uijqGrid调用restful服务成功,但未能显示jqGrid ui
【发布时间】:2016-01-18 01:02:02
【问题描述】:

这是 RESTful 数据格式

{"user":[
           {"id":"aupres","passwd":"aaa","age":45,"name":"father"},
           {"id":"hwa5383","passwd":"bbb","age":40,"name":"mother"},
           {"id":"julian","passwd":"ccc","age":15,"name":"son"}

]}

我的 jqGrid 客户端调用上述数据成功。下图显示了结果:

但此代码无法显示对 jqGrid 的响应。这是我的客户代码

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>jqGrid Test</title>
    <link rel="stylesheet" type="text/css" media="screen" href="jquery-ui.css"/>
    <link rel="stylesheet" type="text/css" media="screen" href="ui.jqgrid.css"/>
    <script type="text/javascript" src="jquery-2.2.0.min.js"></script>
    <script type="text/javascript" src="jquery.jqGrid.min.js"></script>
    </head>
    <body>
    <table id="grid"></table>
    <div id="pager"></div>
    <script type="text/javascript">
    $(document).ready(function(){

       $Grid = $("#grid");
       $Grid.jqGrid({

          mtype: "get",
          url: "/JQueryJsonWeb/rest/services/getJson/aupres",
          contentType: "text/json; charset=utf-8",
          dataType: "json",

          jsonReader : {
             root : "user"
          },
          colNames : [
             'id',
             'passwd',
             'age',
             'name'
          ],
          colModel : [
             { name : 'id',        width:40,  align:'center'},
             { name : 'passwd',    width:80,  align:'left'  },
             { name : 'age',       width:80,  align:'left'  },
             { name : 'name',      width:80,  align:'right' }
          ],
          pager : '#pager',
          rowNum : '10',

          loadComplete : onloadComplete,
          loadError : onloadError,
          gridComplete : ongridComplete
       });  

       function onloadComplete(jsonData, status) {
          console.log(jsonData) **// This method shows the above image.**
       }

       function onloadError(status) {
          console.log(status)
       }

       function ongridComplete() {
          console.log("fiished!!!");
       }
    });
    </script>
    </body>
    </html>

【问题讨论】:

    标签: json rest jqgrid


    【解决方案1】:

    请阅读the comment您之前的问题:

    • JavaScript 是区分大小写的语言。有NOdataType: "json"参数,将使用默认datatype: "xml"
    • 不存在的参数contentType 也将被忽略。如果将那里解释为 XML 数据,则返回错误。
    • 您包含的输出来自onloadError,而不是来自onloadCompleteonloadError的参数为jqXHRtextStatuserrorThrown。您包含了jqXHR 对象的控制台输出。见the answer
    • 您应该在 JavaScript 中声明变量:使用 var $Grid = $("#grid"); 而不是 $Grid = $("#grid");。在顶部函数的开头包含"use strict" 指令有助于检测此类错误(请参阅here)。同样,我建议您在每个语句后添加分号(请参阅 console.log(status)console.log(jsonData))。
    • 您应该在所有问题中包括您使用哪个版本的 jqGrid 以及来自哪个 fork(free jqGrid - 我的 fork、商业Guriddo jqGrid JS 或版本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-24
      • 2012-06-22
      • 2013-01-02
      • 2016-11-13
      • 1970-01-01
      相关资源
      最近更新 更多