2012-10-29 15 views
0

Possible Duplicate:
can’t add data to jqGrid from php within json formatjqGrid的是空的,我可以看到螢火蟲,從jqGrid的AJAX請求返回的JSON數據正確

我試圖加載在asp.net從控制器動作返回的數據jgqgrid。我使用的是帶有剃鬚刀視圖引擎的MVC 3。我可以在fiddler和firebug中看到jqGrid發出的ajax請求正在返回數據,但數據沒有顯示在jqgrid中。我已經看過所有相關的psots和答案。 我確保在jqgrid腳本文件之前指定了區域文件。 我已經嘗試了GET和POST,並在控制器中相應地更改了操作屬性。

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#list").jqGrid({ 
     datatype: 'json', 
     url: '/Execution/GetAllExecutions/', 
     jsonReader: { repeatitems: true }, 
     mtype: 'POST', 
     rowList: [5, 10, 20, 30], 
     viewrecords: true, 
     colNames: ['OrderID'], 
     colModel: [ 
      { name: 'OrderID', index: 'OrderID', align: 'right',key:true, width: 250} 
     ], 
     pager: '#pager', 
     sortname: 'OrderID', 
     sortorder: 'desc', 
     height: "100%", 
     width: "100%",         
     caption: 'Orders' 
    }); 
}); 
</script> 

<table id="list"><tr><td></td></tr></table> 

<div id="pager"></div> 
+0

我添加了以下處理程序loadComplete:function(){ alert(「OK」); ('HTTP狀態代碼:'+ jqXHR.status +'\ n'+'textStatus:'+ textStatus +'\ n'+'errorThrown:' }, loadError:function(jqXHR,textStatus,errorThrown) + errorThrown); alert('HTTP message body(jqXHR.responseText):'+'\ n'+ jqXHR.responseText); },並執行了loadComplete,我得到了OK警報消息。 –

+0

你應該在Firebug中看到來自服務器的原始響應。例如'jsonReader'應該對應於響應的格式。而且,響應的ContentType也可能非常重要。 – Oleg

+0

這是來自服務器的響應 - 我得到200正確[{「ExtensionData」:{},「BrSeqID」:1,「ClearingID」:「ClearingId1」,「ContractMMD」:「ContractMMD1」,「ExchangeType」:「B」 「OrderAction」: 「C」, 「訂單ID」:1, 「價格」:100, 「數量」:10 「REPORTTYPE」: 「A」},{ 「ExtensionData」:{}, 「BrSeqID」:1, 「ClearingID」: 「ClearingId1」, 「ContractMMD」: 「ContractMMD1」, 「ExchangeType」: 「B」, 「OrderAction」: 「C」, 「訂單ID」:2 「價格」:100, 「數量」:10, 「ReportType」:「A」}] –

回答

1

JSON響應的格式與不對應於jsonReader: { repeatitems: true }您使用服務器返回。你應該使用類似下面

jsonReader: { 
    repeatitems: false, 
    root: function (obj) { return obj; }, 
    page: function() { return 1; }, 
    total: function() { return 1; }, 
    records: function (obj) { return obj.length; } 
} 

而且會建議你添加loadonce: true選擇,因爲你似乎沒有實現在服務器端分頁。

+0

非常感謝,你救了我的一天。我一直在努力工作2天,現在起作用。我是新來jquery和第一次使用jqgrid。 –

+0

@GomtiMehta:不客氣! – Oleg

相關問題