2010-07-09 9 views
9

Mam następujące html w moim miejscu:jqGrid dające wyjątek gdy json próbuje się załadować

<link type="text/css" href="/Styles/ui-lightness/jquery-ui-1.8.2.custom.css" rel="Stylesheet" /> 
<link type="text/css" href="/Styles/ui.jqgrid.css" rel="Stylesheet" /> 
<script type="text/javascript" src="/Scripts/jquery-1.4.2.min.js" ></script> 
<script type="text/javascript" src="/Scripts/jquery-ui-1.8.2.min.js" ></script> 
<script type="text/javascript" src="/Scripts/grid.locale-en.js" ></script> 
<script type="text/javascript" src="/Scripts/jquery.jqGrid.min.js" ></script><link type="text/css" rel="Stylesheet" href="Styles/Site.css" /> 

... 

<script type="text/javascript"> 
    $(document).ready(function() { 
     jQuery("#tblScheduledReleases").jqGrid({ 
      url: '/Release/GetScheduledReleases', 
      datatype: "json", 
      mtype: 'POST', 
      colNames: ['Id', 'Version', 'Name', 'Scheduled Date'], 
      colModel: [ 
       { name: 'id', width: 55 }, 
       { name: 'version', width: 90 }, 
       { name: 'name', width: 100 }, 
       { name: 'date', width: 90 } 
        ], 
      autowidth: true, 
      sortname: 'date', 
      viewrecords: true, 
      sortorder: "desc", 
      caption: "Scheduled Releases" 
     }); 
    }); 
</script> 

.... 

<table id="tblScheduledReleases"></table> 
<div id="divScheduledPager"></div> 

Teraz gdy ładuje pokazuje siatkę z odpowiednich kolumn, a następnie wyświetla komunikat Loading. Jest jednak stale utknięty w sekcji ładowania. Otwarcie konsola chrom pokazuje następujący błąd:

Uncaught TypeError: Cannot read property '0' of undefined in jquery.jqGrid.min.js:14 

Tutaj jest JSON zwracane przez mojego serwera WWW wniosek jqGrid:

{ 
    "page":"1", 
    "total":"1", 
    "records":6, 
    "rows":[ 
    {"id":"37","version":"4.14.9.1","name":"4.14 Patch 8","date":"2010-07-08"}, 
    {"id":"39","version":"4.15.4.1","name":"4.15 Patch 3","date":"2010-07-08"}, 
    {"id":"36","version":"4.13.11.1","name":"4.13 Patch 11","date":"2010-07-15"}, 
    {"id":"40","version":"4.15.5.1","name":"4.15 Patch 4","date":"2010-07-22"}, 
    {"id":"38","version":"4.14.10.1","name":"4.14 Patch 9","date":"2010-07-22"}, 
    {"id":"30","version":"4.16.1.1","name":"4.16 Release","date":"2010-07-30"} 
    ] 
} 

Dlaczego otrzymuję ten wyjątek?

Odpowiedz

33

powinien zawierać

jsonReader : { repeatitems: false } 

w parametrach jqGrid.

+0

Niesamowite, co zadziałało! – KallDrexx

+2

To musi działać! Domyślną wartością 'repeatitems' jest 'true', a jqGrid próbuje odczytać wszystkie według numerów, więc zamiast każdego elementu w wierszu, jak np. {" Id ":" 37 "," wersja ":" 4.14.9.1 "," nazwa ": "4.14 Patch 8", "date": "2010-07-08"} na przykład powinieneś mieć tablicę ["37", "4.14.9.1", "4.14 Patch 8", "2010-07-08"]. – Oleg

+0

Znów odpowiedź jq Grid od Olega. Thx man! – Steven

Powiązane problemy