2014-07-16 32 views
1

我在從Json響應中顯示JQGrid中的數據時遇到問題。從行動收到JSON響應是Json數據在spring中沒有綁定到jqgrid,struts2

{ 
"deviceInfoList": [ 
    { 

     "androidVersion": "4.3", 
     "deviceImageUrl": "//image", 
     "deviceName": "generic", 
     "deviceNetwork": { 
      "deviceId": "000000000000000" 
      "serviceState": "STATE_OUT_OF_SERVICE", 
      "signalStrength": 0 
     }, 
     "deviceSettingsInfo": { 
      "chargingStatus": 50, 
      "currentLocation": "", 
      "macId": "DEFAULT", 
      "rowStatus": true, 

     }, 
     "deviceType": "Android", 
     "emailId": " " 
     "phoneNumber": "15555215554", 

    } 

] 

}

的值可以在控制檯中可以看出,但仍然jqGrid的我empty.I使用Spring,Struts2的和Hibernate Integration.Please help.Thanks。

代碼格:

$("#grid").jqGrid(
     { 
      url :'loadGrid', 
      datatype : "json", 
      mtype: 'GET', 
      height : 230, 
      autowidth : true, 
      multiselect : true, 
      colNames : [ 'IMEI', 'MAC ID', 'Name', 'Base Location', 
        'Current Location', 'OS and Version', 'Device Type', 
        'Status', 'Last Contacted' ], 
      colModel : [ { 
       name : 'imeiNo1', 
       index : 'imeiNo1', 

      }, { 
       name : 'macId', 
       index : 'macId' 
      }, { 
       name : 'deviceName', 
       index : 'deviceName' 
      }, { 
       name : 'ipAddress', 
       index : 'ipAddress' 
      }, { 
       name : 'currentLocation', 
       index : 'currentLocation' 
      }, { 
       name : 'androidVersion', 
       index : 'androidVersion' 
      }, { 
       name : 'deviceType', 
       index : 'deviceType' 
      }, { 
       name : 'chargingStatus', 
       index : 'chargingStatus' 
      }, { 
       name : 'deviceAddedDate', 
       index : 'deviceAddedDate' 
      } ], 
      sortname : 'id', 
      pager : '#pager', 
      caption : "Device Details", 
      hidegrid : false, 
      pgbuttons : false, // disable page control like next, back 
      pgtext : null, // disable pager text like 'Page 0 of 10' 
      viewrecords : false, 

      jsonReader : { 
       root: "rows", 
       page: "page", 
       total: "total", 
       records: "records", 
       repeatitems: true, 
       cell: "cell", 
       id: "id", 
       userdata: "userdata", 
       subgrid: {root:"rows", 
        repeatitems: true, 
        cell:"cell" 
       } 
       } 
     }); 

var names = [ "imeiNo1", "macId", "deviceName", "ipAddress", "currentLocation", 
     "androidVersion", "deviceType", "chargingStatus", "deviceAddedDate" ]; 
var mydata = []; 

for (var i = 0; i < data.length; i++) { 
    mydata[i] = {}; 
    for (var j = 0; j < data[i].length; j++) { 
     mydata[i][names[j]] = data[i][j]; 
    } 
} 

for (var i = 0; i <= mydata.length; i++) { 
    $("#grid").jqGrid('addRowData', i + 1, mydata[i]); 
} 

$("#grid").jqGrid('navGrid', '#pager', { 
    edit : false, 
    view : false, 
    add : false, 
    del : false, 
    search : false, 
    beforeRefresh : function() { 
     // alert('In beforeRefresh'); 
     grid.jqGrid('setGridParam', { 
      datatype : 'json' 
     }).trigger('reloadGrid'); 
    } 
}); 
+0

請將您的代碼發佈到您創建網格的地方 – Yogesh

回答

0

按照文檔的jqGrid here

第一元件是

元件。這個元素描述了我們數據的開始位置換句話說,這 指向包含數據的陣列...

這意味着root: "deviceInfoList"應該在你的腳本。

+0

Thanks.Now json值獲取綁定但不是fully.macId,ipAddress,充電狀態仍然沒有綁定。您可以查看json並提出一些建議嗎? – Monika

+0

'.macId','ipAddress'似乎是json中的嵌套屬性。 'colModel'應該有這樣的一些內容'{name:'deviceSettingsInfo.macId',index:'deviceSettingsInfo.macId'}'請[**閱讀此**](http://www.trirand.com/jqgridwiki/) doku.php?id = wiki:retrieveving_data#json_dot_notation) – Yogesh

+0

感謝您的答覆。現在工作正常 – Monika