jqGrid - ASP.NET WebService显示空白的JSON数据源

问题描述:

我对未解决问题的答案表示空白。 本质上,最终结果是没有引发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\":\"\"}]"} 

我不能发布的截图作为一个新用户,但创建的列正确,并显示空白。

任何帮助解决这个问题,将不胜感激!

感谢,

特里

如果好像我的,你做出这样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