2011-03-07 77 views
0

我對未解決問題的答案表示空白。 本質上,最終結果是沒有引發Javascript或XHR錯誤的空白網格。jqGrid - ASP.NET WebService顯示空白的JSON數據源

Javascript代碼:

var MyServiceURL = "MyService.asmx/"; 

function getOrders() { 
    $.ajax({ 
     type: "POST", 
     dataType: "json", 
     url: MyServiceURL + 'GetOrders', 
     success: function(data) { 
      var thegrid = $("#orders")[0]; 
      thegrid.addJSONData(data); 
     }, 
     error: function(e) { 
      var error = $.parseJSON(e.responseText); 
      $('#msg').html(error.Message); 
     } 
    }); 
} 

function bindGrid() { 
    $("#orders").jqGrid({ 
     datatype: getOrders, 
     colNames: ['CO_ODNO', 'CO_STATUS', 'ROUTE_CODE', 'ROUTE_STOP', 'PRIOR_NAME', 'CU_NO'], 
     colModel: [{ name: 'CO_ODNO', index: 'CO_ODNO', width: 200, align: 'left' }, 
        { name: 'CO_STATUS', index: 'CO_STATUS', width: 200, align: 'left' }, 
        { name: 'ROUTE_CODE', index: 'ROUTE_CODE', width: 200, align: 'left' }, 
        { name: 'ROUTE_STOP', index: 'ROUTE_STOP', width: 200, align: 'left' }, 
        { name: 'PRIOR_NAME', index: 'PRIOR_NAME', width: 200, align: 'left' }, 
        { name: 'CU_NO', index: 'CU_NO', width: 200, align: 'left' } 
        ], 
     rowNum: 10, 
     rowList: [5, 10, 20, 50, 100], 
     sortname: 'CO_ODNO', 
     pager: $('#pager'), 
     sortorder: "desc", 
     viewrecords: true 
    }); 


} 

$(document).ready(function() { 

    $.ajaxSetup({ 
     type: "POST", 
     cache: false, 
     contentType: "application/json; charset=utf-8", 
     data: "{}", 
     dataFilter: function(data) { 
      var msg; 

      if (typeof (JSON) !== 'undefined' && 
      typeof (JSON.parse) === 'function') 
       msg = JSON.parse(data); 
      else 
       msg = eval('(' + data + ')'); 

      if (msg.hasOwnProperty('d')) 
       return msg.d; 
      else 
       return msg; 
     } 
    }); 

    $('#btnGetOrders').click(function() { 
     bindGrid(); 
    }); 

}); 

數據正在從服務器(使用JSON林特確認)返回:

{"d":"[{\"CO_ODNO\":\"1    \",\"CO_STATUS\":\"D\",\"ROUTE_CODE\":\"K&H \",\"ROUTE_STOP\":0,\"PRIOR_NAME\":\"\",\"CU_NO\":\"24105  \",\"SHIP_TO\":\"24105  \",\"ORDER_DT_TM\":\"\\/Date(1044635082000)\\/\",\"ORDER_REQD_DT\":\"\\/Date(1059624060000)\\/\",\"SHIP_REQD_DT\":\"\\/Date(1059624060000)\\/\",\"ORDER_TYPE\":\"LIC\",\"CARRIER\":\"\",\"TIMESTAMP\":\"\\/Date(1059572051000)\\/\",\"ORDER_DEL_DT\":\"\\/Date(1044635105000)\\/\",\"TRAFFIC_REF_NO\":\"\",\"SITE\":3,\"PALLET_CUBE\":-1,\"HOST_ODNO\":\"1\",\"CLI_NO\":\"\",\"SERVICE_LEVEL\":\"\",\"EMPLOYEE_NUMBER\":\"\",\"PAY_METHOD\":\"    \",\"CU_NAME\":\"\",\"PU_ORDER_FL\":\"Y\",\"DELIVERY_FL\":\"\",\"ENTRY_FL\":\"\"},{\"CO_ODNO\":\"100056   \",\"CO_STATUS\":\"D\",\"ROUTE_CODE\":\"\",\"ROUTE_STOP\":0,\"PRIOR_NAME\":\"\",\"CU_NO\":\"802977 \",\"SHIP_TO\":\"802977 \",\"ORDER_DT_TM\":\"\\/Date(1045755045000)\\/\",\"ORDER_REQD_DT\":\"\\/Date(1045803660000)\\/\",\"SHIP_REQD_DT\":\"\\/Date(1045803660000)\\/\",\"ORDER_TYPE\":\"LIC\",\"CARRIER\":\"\",\"TIMESTAMP\":\"\\/Date(1144859314000)\\/\",\"ORDER_DEL_DT\":\"\\/Date(1045777318000)\\/\",\"TRAFFIC_REF_NO\":\"\",\"SITE\":3,\"PALLET_CUBE\":-1,\"HOST_ODNO\":\"\",\"CLI_NO\":\"\",\"SERVICE_LEVEL\":\"\",\"EMPLOYEE_NUMBER\":\"\",\"PAY_METHOD\":\"    \",\"CU_NAME\":\"\",\"PU_ORDER_FL\":\"N\",\"DELIVERY_FL\":\"\",\"ENTRY_FL\":\"\"},{\"CO_ODNO\":\"100101   \",\"CO_STATUS\":\"D\",\"ROUTE_CODE\":\"\",\"ROUTE_STOP\":0,\"PRIOR_NAME\":\"\",\"CU_NO\":\"806821 \",\"SHIP_TO\":\"806821 \",\"ORDER_DT_TM\":\"\\/Date(1045760795000)\\/\",\"ORDER_REQD_DT\":\"\\/Date(1045803660000)\\/\",\"SHIP_REQD_DT\":\"\\/Date(1045803660000)\\/\",\"ORDER_TYPE\":\"LIC\",\"CARRIER\":\"\",\"TIMESTAMP\":\"\\/Date(1144859314000)\\/\",\"ORDER_DEL_DT\":\"\\/Date(1045777603000)\\/\",\"TRAFFIC_REF_NO\":\"\",\"SITE\":3,\"PALLET_CUBE\":-1,\"HOST_ODNO\":\"100101\",\"CLI_NO\":\"\",\"SERVICE_LEVEL\":\"\",\"EMPLOYEE_NUMBER\":\"\",\"PAY_METHOD\":\"    \",\"CU_NAME\":\"\",\"PU_ORDER_FL\":\"Y\",\"DELIVERY_FL\":\"\",\"ENTRY_FL\":\"\"},{\"CO_ODNO\":\"100165   \",\"CO_STATUS\":\"D\",\"ROUTE_CODE\":\"3 \",\"ROUTE_STOP\":0,\"PRIOR_NAME\":\"\",\"CU_NO\":\"21046  \",\"SHIP_TO\":\"21046  \",\"ORDER_DT_TM\":\"\\/Date(1045771536000)\\/\",\"ORDER_REQD_DT\":\"\\/Date(1043125260000)\\/\",\"SHIP_REQD_DT\":\"\\/Date(1043125260000)\\/\",\"ORDER_TYPE\":\"LIC\",\"CARRIER\":\"\",\"TIMESTAMP\":\"\\/Date(1138107143000)\\/\",\"ORDER_DEL_DT\":\"\\/Date(1138107143000)\\/\",\"TRAFFIC_REF_NO\":\"\",\"SITE\":3,\"PALLET_CUBE\":-1,\"HOST_ODNO\":\"100165\",\"CLI_NO\":\"\",\"SERVICE_LEVEL\":\"\",\"EMPLOYEE_NUMBER\":\"\",\"PAY_METHOD\":\"    \",\"CU_NAME\":\"\",\"PU_ORDER_FL\":\"N\",\"DELIVERY_FL\":\"\",\"ENTRY_FL\":\"\"},{\"CO_ODNO\":\"100192   \",\"CO_STATUS\":\"D\",\"ROUTE_CODE\":\"\",\"ROUTE_STOP\":0,\"PRIOR_NAME\":\"\",\"CU_NO\":\"91163  \",\"SHIP_TO\":\"91163  \",\"ORDER_DT_TM\":\"\\/Date(1045775053000)\\/\",\"ORDER_REQD_DT\":\"\\/Date(1045803660000)\\/\",\"SHIP_REQD_DT\":\"\\/Date(1045803660000)\\/\",\"ORDER_TYPE\":\"LIC\",\"CARRIER\":\"\",\"TIMESTAMP\":\"\\/Date(1144859314000)\\/\",\"ORDER_DEL_DT\":\"\\/Date(1045777813000)\\/\",\"TRAFFIC_REF_NO\":\"\",\"SITE\":3,\"PALLET_CUBE\":-1,\"HOST_ODNO\":\"100192\",\"CLI_NO\":\"\",\"SERVICE_LEVEL\":\"\",\"EMPLOYEE_NUMBER\":\"\",\"PAY_METHOD\":\"    \",\"CU_NAME\":\"\",\"PU_ORDER_FL\":\"Y\",\"DELIVERY_FL\":\"\",\"ENTRY_FL\":\"\"}]"} 

我不能發佈的截圖作爲一個新用戶,但創建的列正確,並顯示空白。

任何幫助解決這個問題,將不勝感激!

感謝,

特里

回答

0

如果好像我的,你做出這樣here同樣的錯誤。所有的

首先,我想,在Web方法GetOrders您使用JavaScriptSerializer,使代表網格的行和你的服務回報string對象序列化。因此,數據的JSON表示(字符串)將被添加到d屬性{d:result}的對象中,並且所有將爲的一次轉換爲JSON。而不是你的網絡方法應該返回List<Order>類型。您可以驗證這是您將使用thegrid.addJSONData(jQuery.parseJSON(data.d))代替thegrid.addJSONData(data)

我建議你也不要使用$.ajaxSetup$.ajax$("#orders").jqGrid複雜的結構與datatype的功能。在ajaxGridOptionsserializeGridData選項被引入之前,對於jqGrid來說是好的。在jqGrid 3.6及更高版本中,jqGrid可以直接從幾乎任何數據源加載數據。有關更多詳細信息和代碼示例,請參閱the answerthis,this)的鏈接。您也可以搜索ajaxGridOptions and serializeGridData`。

+0

感謝Oleg,您的意見非常有價值。 – Terry 2011-03-10 17:11:23

+0

@Terry:不客氣! – Oleg 2011-03-10 17:42:56