2011-10-20 25 views
6

¿Cómo obtengo el objeto de fila en la fila seleccionada en jqGrid? Necesito el objeto real, no el valor de celda. Revisé la documentación pero no pude encontrar un método que me proporcione el objeto fila. dado que uso formateadores personalizados, el valor de celda no funcionará.Objeto de fila jqGrid en onSelectRow

Respuesta

9

Si implementa custom formatter y desea obtener el valor de la celda con respecto a getCell o getRowData usted tiene que poner en práctica unformat función también.

No está claro a qué se refiere en "Necesito el objeto real, no el valor de celda". Tampoco está claro qué datatype utiliza, ya sea que utilice la opción loadonce: true o no, y si carga los datos del servidor en cuyo formato se publicarán los datos en el servidor.

Si utiliza datatype: 'local' o utilizar loadonce: true se llenarán los internos data y _index parámetros. Para obtener los datos en bruto de la red por rowid puede utilizar

var rowData = this.p.data[this.p._index[rowid]] 

o

var grid = $(this), 
    localdata = grid.jqGrid('getGridParam', 'data'), 
    indexes = grid.jqGrid('getGridParam', '_index'), 
    rowData = localdata[indexes[rowid]]; 

Si usted no usa o usa datatype: 'local'loadonce: true y cargar los datos desde el servidor sólo se puede guardar el objeto representó los datos de la respuesta del servidor en una variable (en un objeto). El controlador de eventos loadComplete tiene un parámetro data que es la información sin procesar publicada desde el servidor. Por lo tanto, puede guardar los datos que necesita en un objeto (en un mapa que obtendrá el objeto yut por rowid) y usarlos dentro del controlador de eventos onSelectRow.

+0

Gracias por esto, me apuntó en la dirección correcta – SystemParadox

+1

@SystemParadox: ¡De nada! Te recomiendo que también examines el método 'getLocalRow'. Mire [la respuesta] (http://stackoverflow.com/a/9145342/315935) u [otro más] (http://stackoverflow.com/a/10362294/315935) para ver ejemplos de códigos pequeños e información adicional. [El código fuente] (https://github.com/tonytomov/jqGrid/blob/v4.3.2/js/grid.base.js#L3494-3505) del método es muy pequeño y te recomiendo que lo leas también . – Oleg

+0

Debo admitir que siempre lo he pasado por alto, pero el almacenamiento de los datos para su posterior uso en loadComplete es una funcionalidad muy valiosa. Como nunca utilizo datatype: 'local' o loadonce: verdadero. Incluso me pregunto por qué no está almacenado por defecto en algún tipo de propiedad 'rawdata'. De todos modos, gracias por señalarlo Oleg. +1 – Steven

3

en mi proyecto:

ondblClickRow : function(rowid,iRow,iCol,e) { 
    $($("#completeDetail").getInd(rowid,true)).find(":first").click(); 
} 

Esto resolvería la fila aumento no encontrará en busca de la fila

utilice esta función ->getInd(rowid,rowcontent).

Este método devuelve el índice de la fila en la tabla de grillas especificada por id=rowid cuando rowcontent se establece en falso (valor predeterminado). Si rowcontent se establece en verdadero, devuelve el objeto de la fila de entrada. Si no se puede encontrar el rowid, la función devuelve falso.

Cuestiones relacionadas