Utilizziamo un formattatore personalizzato per generare caselle di testo del modulo html. Nel caso in cui un utente abbia inserito dati e tocchi il pulsante next/prev, vogliamo dire loro "hai modificato i dati, premi ok per rimanere su questa pagina e salva i tuoi dati". Come puoi fare questo?jqGrid impedisce la navigazione del cercapersone?
L'evento "onPaging" si attiva quando si utilizza il cercapersone ma non sembra consentire di impedire l'impaginazione.
Aggiornamento: soluzione attuale:
var currPg = 1;
var dirty = 'false';
$("#list").jqGrid({
...
onPaging: function (b) {
var nextPg = $("#list").getGridParam("page");
if (dirty == 'false') {
currPg = nextPg;
return;
}
$("#dialog-confirm").dialog({
modal: true,
buttons: {
"Stay on current page": function() {
$(this).dialog("close");
},
"Change page": function() {
$(this).dialog("close");
reloadGrid($("#list"), null, nextPg, 'false');
}
}
});
$("#list").setGridParam({page:currPg}); //Workaround - jqGrid still increments the page num even when we return stop so we have to reset it (and track the current page num)
return 'stop';
},
Update 2: Bug registrato here.
Grazie Oleg, sta lavorando su questo ora. Un bug che ho trovato è che se si restituisce 'stop' il numero della pagina della griglia è ancora incrementato .. presenterà un bug .. –
@Marcus: come soluzione alternativa è possibile reimpostare il valore con 'setGridParam' – Oleg
Just do che :) C'è un modo per determinare la pagina attualmente visualizzata? Se usi 'getGridParam ('page')' restituisce la pagina che verrà visualizzata successivamente. Ho usato una nuova variabile per tenere traccia del numero effettivo della pagina visualizzata - non sono sicuro se c'è un modo migliore .. –