2010-09-27 11 views
5

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.

risposta

4

Se la funzione onPaging restituisce 'stop', l'impaginazione verrà arrestata.

+0

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 .. –

+0

@Marcus: come soluzione alternativa è possibile reimpostare il valore con 'setGridParam' – Oleg

+0

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 .. –

0

Come da mia osservazione, l'evento onPaging funziona bene con l'ultimo plug-in jqgrid. Se utilizziamo il precedente plug-in jqgrid (precedente alla versione 3.8), l'evento onPaging funzionerà, ma c'è un errore nell'impaginazione dopo l'utilizzo di questo evento. incrementa il valore della pagina o l'utente fa clic su OK o annulla (in entrambi i casi). Che porta a dati corrotti di impaginazione.

Problemi correlati