2015-10-09 143 views
1

当我在浏览器上使用localhost:8080/SpringServiceJsonSample/rest/service/user/时,我返回json类型的所有数据,但是当我在jQuery网格数据中使用此url数据时未加载,我也使用了调试器,但没有发现错误。Json阅读器问题

 jQuery("#grid").jqGrid({ 
      // url: '/Home/SampleGridData/', 
      url: '/SpringServiceJsonSample/rest/service/user/', 
      datatype: 'json', 
      mtype: 'GET', 
      contentType: "application/json" , 
      colNames: ['First Name', 'lastName'], 
      colModel: [ 
      { name: 'firstName', index: 'name', width: 60, align: 'center', editable: true, editrules: { edithidden: false} },     

      { name: 'lastName', index: 'lastName', width: 200, align: 'center', sortable: true, editable: true, edittype: 'text', editrules: { required: true, email: true} },    
      ], 
      pager: jQuery('#pager'), 
      rowNum: 10, 
      rowList: [5, 10, 20, 50], 
      sortorder: "asc", 
      viewrecords: true, 
      caption: 'JqGrid Sample', 
      jsonReader: { 
       repeatitems: true, 
       id: "0", 
       cell: "cell", 
       rows : "details", 
       page : "pageno" 
       } 
     }); 

}); 

的json价值回归这样的: - [{ “ID”:1, “名字”: “与Pradeep”, “姓氏”: “与Pradeep”, “电子邮件”:空},{ “ID”:2, “名字”: “特湖”, “姓氏”: “特湖”, “电子邮件”:空}]

+0

你是否能够在浏览器的网络部分看到请求到'localhost:8080/SpringServiceJsonSample/rest/service/user /'URL?你会得到200个响应码吗? – vijayP

+0

@ vijayP,老兄没有 –

+0

这意味着这个调用根本不会被调用。请检查网络部分,看看为什么'/ SpringServiceJsonSample/rest/service/user /'变得最终的URL已经变成# – vijayP

回答

1

您必须修改jsonReader到类似下面的

jsonReader: { 
    repeatitems: true, 
    id: "userid", 
    root: function (obj) { return obj; } 
}, 
loadonce: true, 
gridview: true, 
autoencode: true, 
height: "auto" 

您应该删除全部index属性colModel

顺便说一下,在jqGrid中不存在选项contentType: "application/json",但是如果您的后端真的需要它,您可以使用ajaxGridOptions:{ contentType: "application/json" }

我会建议你更新jqGrid,你使用的当前版本free jqGrid。此外,还可以添加loadError回调(请参阅the answer),并使用IE/Chrome的Fiddler或Developer Tools来跟踪jqGrid和服务器之间的HTTP通信。分析HTTP流量有助于理解jqGrid和服务器之间的通信,并快速定位问题的根源。

+0

,兄弟谢谢你,最后我的网格开始加载数据后2天。非常感谢你DUDE奥列格 –

+0

@NaveenMaurya:不客气! – Oleg