jqgrid reloadGrid con loadonce establecido en true

Estoy usando dos jqgrids en una página. segunda grilla que utilicé loadonce: true ya que necesito clasificación de columnas en la segunda grilla. Necesito volver a cargar ambas cuadrículas después de una publicación del servidor. (necesita mostrar el valor actualizado en la segunda cuadrícula). la primera cuadrícula vuelve a cargar bien ya que no usará el atributo loadonce . mi pregunta es si podemos usar loadonce attribute y reloadGrid together? (estableciendo dinámicamente el atributo loadonce en la grilla) o, de lo contrario, ¿ loadonce que loadonce una clasificación del lado del servidor en este caso? por favor aconséjame. Gracias por adelantado.

Si usa loadonce:true jqGrid, cambie los parámetros de datatype a ‘local’ después de la primera carga de datos de la grilla. La próxima recarga de cuadrícula (ordenación, paginación, filtrado) funciona localmente. Si desea actualizar los datos de la cuadrícula del servidor una vez más, debe establecer el datatype de datatype en su valor original (‘json’ o ‘xml’). Por ejemplo:

 $("#list").setGridParam({datatype:'json', page:1}).trigger('reloadGrid'); 

ACTUALIZADO: JqGrid gratuito es compatible con la opción fromServer: true de reloadGrid comenzando con la primera versión (comenzando con la versión 4.8). Entonces uno puede usar el código como

 $("#list").trigger("reloadGrid", { fromServer: true, page: 1 }); 

hacer lo mismo que arriba. La principal ventaja: dicho código funciona bien con cualquier valor inicial de datatype de datatype ( "json" , "jsonp" , "xml" etc.). El jqGrid gratuito guarda el valor original del datatype de datatype dentro del dataTypeOrg interno antes de cambiarlo a "local" .

Otra opción útil de libre jqGrid es el parámetro reloadGridOptions de navGrid , que permite especificar las opciones predeterminadas de reloadGrid . Así uno puede usar, por ejemplo,

 loadonce: true, navOptions: { reloadGridOptions: { fromServer: true } } 

opciones de jqGrid, que establece los valores predeterminados para navGrid adicionalmente. Como resultado, al hacer clic en el botón “Volver a cargar” de la barra del navegador se volverá a cargar la cuadrícula del servidor en lugar de la recarga local.

Nice estuvo intentando durante la última semana, la solución es un uso perfecto

 jQuery("#datalist").jqGrid().setGridParam( { datatype:'xml', page:1, url : '<%=request.getContextPath()%>/PreviewReport?cmd=1&fromdate='+vfromDate+'&todate='+vtoDate+'&status='+vstatus+'&keyword='+vkeyword+'&mdn='+vmdn+'&filetype='+vfiletype } ).trigger("reloadGrid"); 

para volver a cargar los datos usando loadonce:false

Solo para decir, para mí, la siguiente línea no fue suficiente, para actualizar los datos en mi loadonce:true jqGrid:

 $("#MikesGrid").jqGrid('setGridParam', { datatype: 'json' }).trigger('reloadGrid'); 

Después de llamar a esa línea, traté de llamar a mi código que cargó mis datos JSON y jqGrid el jqGrid con él, pero no actualizó las filas en mi grilla.

Mi solución fue descargar a la fuerza el jqGrid, y luego llamar a mi función para recrearlo.

 $("#MikesGrid").jqGrid('GridUnload'); 

Tal vez solo tuve mala suerte.

Por cierto, cuando tengo la oportunidad, documentaré cómo escribí una función de JavaScript genérica para agregar dos botones a cualquier jqGrid, uno para actualizar los datos (loadonce) y un segundo botón para exportar los datos de jqGrid a un archivo de Excel real , usando mi biblioteca:

Exportar jqGrid a un archivo de Excel

Me gusta el código reutilizable

 $("#shoppingCatalog").jqGrid('GridUnload'); 

Eliminará la estructura y luego su código puede reconstruir la cuadrícula con los datos de la próxima callback del servidor.