¿Cómo se lee userData en jqgrid?

Necesito pasar userData a jqgrid , pero no puedo encontrar ningún ejemplo de cómo hacer esto. Aquí está mi bash:

Enviado desde el servidor:

 { total: 25, page: currentpage, userData: {foo: 'bar'}, rows: myRows } 

y en jqgrid:

 var data = jQuery("#grid").getGridParam('userData'); 

¿Cómo puedo enviar userData y leerlo desde jqgrid?

EDITAR: Sé que mi userData se está enviando, porque puedo verlo en Fiddler . Creo que estoy atascado en cómo leerlo en el lado del cliente.

En general, el uso de userData es bastante simple. jqGrid le brinda soporte para enviar desde el servidor cualquier información adicional que se guardará junto con los datos de jqGrid . Entonces, si jqGrid analiza los datos devueltos por el servidor, solo busca datos de userdatano para userData !) Y los guarda en el parámetro interno userData .

 { "total":25, "page":1 "records":107, "userdata": {"foo": "bar"}, "rows": [...] } 

Tenga cuidado: la propiedad predeterminada en los datos de entrada debe ser userdata y NO userData como lo tiene actualmente. Puede sobrescribir el nombre predeterminado de la propiedad de entrada jsonReader: {userdata: "userData"} o jsonReader: {userdata: "myData"} si usa userData o myData como nombre de propiedad con sus datos adicionales .

Uno del uso estándar de userData es para mostrar el pie de página en el jqGrid. Puede usar los datos para cualquier otra propuesta. En otra respuesta , se muestra cómo usar userData para seleccionar algunas filas / filas directamente después de cargar los datos del servidor.

Si usa el parámetro loadonce:true , el uso de userData será un poco más complicado porque después de la primera carga los datos del parámetro userData se eliminarán, por lo que debe guardarlos allí en el objeto externo.

Por lo tanto, puede acceder a userData con respecto a jQuery("#grid").getGridParam('userData') solo después de cargar los datos. Por lo tanto, debe hacer esto dentro del identificador de evento loadComplete o posterior. Por cierto, dentro del controlador de evento loadComplete puede acceder a todos los datos que se le envían desde el servidor a través del parámetro de data del evento loadComplete . Para que pueda leer cualquier otro dato adicional y guardarlo en alguna parte.

jqGrid acepta de manera predeterminada JSON en este formato.

 {"rows": [{"foo":"bar"}] } 

y al configurar las opciones de jqgrid, harías algo como esto:

 $("#cashflow-sheet").jqGrid({ url:'bbc-json.html', datatype: "json", ...