2010-07-09 5 views
9

Tengo el siguiente código HTML en mi sitio:jqGrid dando excepción cuando se intenta JSON para ser cargados

<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> 

Ahora, cuando esta carga la cuadrícula muestra con las columnas correctas y luego muestra el mensaje Loading. Sin embargo, está permanentemente atascado en la sección de carga. La apertura de la consola de Chrome muestra el siguiente error:

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

Aquí está el JSON devueltos por mi servidor web solicitada por el 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"} 
    ] 
} 

¿Por qué recibo esta excepción?

Respuesta

33

Debe incluir

jsonReader : { repeatitems: false } 

en los parámetros jqGrid.

+0

Impresionante que funcionó! – KallDrexx

+2

¡Debe funcionar! El valor predeterminado de 'repeatitems' es' true' y jqGrid intenta leer todos por números, por lo que en lugar de cada elemento en la fila como {"id": "37", "versión": "4.14.9.1", "nombre": "4.14 Patch 8", "date": "2010-07-08"} por ejemplo, debería tener array ["37", "4.14.9.1", "4.14 Patch 8", "2010-07-08"]. – Oleg

+0

Nuevamente una cuadrícula de respuesta jqGrid de Oleg. ¡Thx hombre! – Steven

Cuestiones relacionadas