Non sei l'unica persona che ha il problema. Ho risposto a the same question prima. Per ricaricare il contenuto della griglia dal server, è necessario reimpostare il parametro datatype
sul valore originale "json" o "xml" e quindi aggiornare la griglia. Per esempio
jQuery("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
AGGIORNATO: Per chiamare la linea interna della beforeRefresh gestore di eventi si può fare seguendo
jQuery("#list").jqGrid('navGrid','#pager',
{ edit:false,view:false,add:false,del:false,search:false,
beforeRefresh: function(){
alert('In beforeRefresh');
grid.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
}
});
Ho modificato un esempio da am vecchia questione. Here se si fa clic sul pulsante di aggiornamento è possibile vedere in diretta come funziona il codice.
AGGIORNATO 2: Free jqGrid supporta alcune nuove opzioni. L'evento reloadGrid
supporta il parametro fromServer: true
che può essere utilizzato per forzare il ricaricamento dei dati dal server e navGrid
supporta l'opzione reloadGridOptions
che può essere utilizzata per specificare le opzioni di reloadGrid
utilizzate al clic sul pulsante Aggiorna. Così il codice di cui sopra potrebbe essere
$("#list").jqGrid("navGrid", {
edit: false,
add: false,
del: false,
search: false,
reloadGridOptions: { fromServer: true }
});
Tra l'altro si può usare navOptions
possibilità di jqGrid per specificare le opzioni di default di navGrid
(vedere l'articolo wiki). Permette di scrivere il codice qualcosa come
$("#link").jqGrid({
// all typical jqGrid parameters
datatype: "json", // or "xml"
loadonce: true,
pager: true, // no empty div for page is required
navOptions: {
edit: false,
add: false,
del: false,
search: false,
reloadGridOptions: { fromServer: true }
}
}).jqGrid("navGrid");
Grazie - Come è possibile eseguire questo codice quando si fa clic sul pulsante di ricarica? Non sono chiaro come configurare la barra di navigazione per eseguire il metodo 'beforeRefresh' se questo è ciò a cui si sta alludendo. –
@Marcus: Se è molto semplice. Ho incluso il codice corrispondente nella mia risposta. – Oleg
@Oleg, ho provato a farlo, ma una volta fatto clic sul pulsante di aggiornamento, l'impaginazione non funziona. –