2010-07-17 14 views

Respuesta

10

Si configura datatype en 'local', los datos del servidor no se cargarán. Para forzar la carga de datos, puede cambiar datatype a 'json' o 'xml' con respecto al método setGridParam (consulte http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options y http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods#grid_related_methods) y luego llamar al método trigger("reloadGrid").

Ver jqGrid is not loading data que también tiene la información de lo que usted pidió.

+0

+1 voltear el tipo de datos funcionó a la perfección. ¡Gracias! – ongle

2

Simplemente no establezca la URL predeterminada en la tabla. E instálelo justo cuando necesite cargar datos (por ejemplo, presionando un botón) y luego .trigger("reloadGrid").

Ejemplo para usted:

jQuery("#grid").jqGrid(
     { 
      //Simply comment out the URL 
      //url    :"salepointsprovider.php", 
      datatype:"json", 
      colModel  :[ 
       {name:'SalePointId', index:'SalePointId'}, 
       {name:'Name', index:'Name'} 
      ] 
     } 

$('#ShowRecordsButton').click(function() { 
      jQuery("#grid").jqGrid('setGridParam', 
      {url:"salepointprovider.php?SalePointId=" + argSalePointId, page:1}); 
      jQuery("#grid").trigger('reloadGrid'); 
     } 
0

Mi red sin enviar URL peticiones al servidor:?

.../_ búsqueda = false & nd = 1370817124473 & filas = 20 & page = 1 & SIDX = & sord = asc

Establecer tipo de dato: "local" soluciona el problema. Recargar red por

 
`function reloadGrid(gridId, gridData){ 
    $(gridId).jqGrid('clearGridData'); // need for nonempty grig (see http://www.trirand.com/blog/?page_id=393/help/triggerreloadgrid-not-work/) 
    $(gridId).jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid'); 
} 
`

No hay necesidad de cambiar el tipo de datos (al menos para mi caso JSON se reconoce)

0

En treegrid que no podía utilizar el tipo de datos = 'local'. Por lo tanto, en lugar de 'local', establezco datatype = 'jsonstring', defino datos falsos vacíos y jsonReader. jsonReader debe definirse correctamente de acuerdo con los datos recuperados. Gracias por el answer de Oleg. Y, cuando necesito cargar datos, simplemente cambio el tipo de datos a 'json'.

var fakeData ={ 
    rows: [] 
}; 
... 
datatype: 'jsonstring', 
datastr: fakeData, 
... 
jsonReader: { 
    repeatitems: false, 
    root: function (obj) { return obj.rows; }, 
    page: function (obj) { return 1; }, 
    total: function (obj) { return 1; }, 
    records: function (obj) { return obj.length; } 
} 
+0

Esta no es la respuesta a la pregunta. –

Cuestiones relacionadas