Tuve que buscar en la documentación un poco para encontrar la solución, para verla en su contexto original, vaya aquí: jqGrid Data Manipulation, específicamente la sección cerca del final titulada "Datos de usuario".
En primer lugar, modificar su aplicación JsonReader de la siguiente manera:
jsonReader: {
root: 'Data',
page: 'Page',
total: 'Total',
records: 'Records',
userdata : 'Data',
repeatitems: false,
id: 'Id'
}
cuenta que la opción de datos de usuario configurado en el mismo como root 'Datos'
En mi caso necesitaba para recuperar los datos de fila original cuando el el usuario seleccionó una fila. He implementado de la siguiente manera:
onSelectRow: function(rowid) {
processRow(rowid);
}
para recuperar los datos en el método fila proceso Tengo el siguiente:
var rowData = $("#resultGrid").getGridParam('userData')[rowId - 1];
Dónde #resultGrid es una referencia a mi jqGrid.
Esto devolverá los datos originales vinculados a esa fila antes de aplicar cualquier formateo.
Un par de puntos a tener en cuenta:
- En mi caso, la rejilla se pagina por lo que el conjunto de resultados no mayor de 10 unidades es por lo tanto el 'datos de usuario' suele crecer demasiado
- La ordenación se realiza servidor lado de modo que el índice
rowId
siempre devolverá el valor correcto de 'userData'
- Mientras 'datos de usuario' como referencia como una opción en JsonReader es todo en minúsculas, para recuperarlo utilizando
getGridParam
que necesita para hacer referencia a ella como 'userData'
+1 Ahora necesita el valor raíz y userdata para ser "filas", no "Datos", pero aparte de eso, funciona muy bien con la última versión. – Justin