2009-11-24 12 views
10

Es posible utilizar el método getRowData para recuperar la corriente de una celda, pero esto recupera el contenido actual de la celda en lugar de los datos originales antes de pasar por el formateador.Recuperación de datos de fila originales de jqGrid

¿Cómo recupero el contenido original antes de aplicar las transformaciones de formato? FYI Estoy poblando la tabla usando JSON.

Respuesta

12

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:

  1. 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
  2. La ordenación se realiza servidor lado de modo que el índice rowId siempre devolverá el valor correcto de 'userData'
  3. 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'
+3

+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

-5

Así se recuperan los datos de una fila.

var rowData = jQuery(this).getRowData(rowId); 
var colData = rowData['columnName']); 

columnName es el nombre de la columna de la tabla.

+3

Esto obtiene el contenido, no el valor; – Dan

Cuestiones relacionadas