2011-03-07 3 views
0

왜 작동하지 않는지에 대한 답변이 비어 있습니다. 기본적으로 최종 결과는 Javascript 또는 XHR 오류가 발생하지 않는 빈 그리드입니다.jqGrid - ASP.NET WebService JSON 데이터 소스가 비어 있습니다.

자바 스크립트 코드 :

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처럼 같은 실수를 나의 것으로 보인다.

먼저 웹 메서드 GetOrders을 사용하면 격자의 행을 나타내는 개체의 serialization을 만들고 string을 반환한다고 가정합니다. 결과적으로 데이터의 JSON 표현 (문자열)은 d 속성 {d:result}으로 객체에 추가되고 모두 이되고은 JSON으로 변환됩니다. 대신 귀하의 웹 메서드는 그냥 List<Order> 유형을 반환해야합니다. 당신이 당신이 대신 thegrid.addJSONData(data)

thegrid.addJSONData(jQuery.parseJSON(data.d))를 사용하는 것이다 확인할 수 있습니다 난 당신이 또한 함수와 datatype으로 $.ajaxSetup, $.ajax$("#orders").jqGrid의 복잡한 구조를 사용하지 않는 것이 좋습니다. 및 serializeGridData 옵션이 도입되기 전에 jqGrid에 좋았습니다. in jqGrid 3.6 이상 jqGrid는 거의 모든 데이터 소스의 데이터를 직접로드 할 수 있습니다. 자세한 내용 및 코드 예제는 the answer (this, this) 링크를 참조하십시오. ajaxGridOptions and serializeGridData`를 검색 할 수도 있습니다.

+0

감사의 말 Oleg, 귀하의 의견은 매우 소중했습니다. – Terry

+0

@ 테리 : 천만에! – Oleg

관련 문제