2010-09-27 7 views
5

Usamos un formateador personalizado para mostrar cuadros de texto de formulario html. En el caso de que un usuario haya ingresado datos y presione el botón siguiente/anterior, queremos decirles "ha editado datos, pulse Aceptar para permanecer en esta página y guardar sus datos". ¿Cómo puedes hacer esto?jqGrid ¿previene la navegación del buscapersonas?

El evento 'onPaging' se dispara cuando utiliza el localizador, pero no parece que le permita evitar que se produzca la paginación.


Actualización: solución actual:

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'; 
    }, 

Actualización 2: Fallo registra here.

Respuesta

4

Si la función onPaging devuelve 'detener', la paginación se detendrá.

+0

Gracias Oleg, trabajando en esto ahora. Un error que creo que he encontrado es que si devuelves 'detener' el número de página de la grilla aún se incrementa ... enviará un error. –

+0

@Marcus: como solución, puedes restablecer el valor con 'setGridParam' – Oleg

+0

eso :) ¿Hay alguna manera de determinar la página que se muestra actualmente? Si usa 'getGridParam ('página')' devuelve la página que se mostrará a continuación. Usé una nueva variable para hacer un seguimiento del número de página real que se muestra - no estoy seguro si hay una mejor manera. –

0

Según mi observación, el evento de publicación funciona bien en el último plugin de jqgrid.Mientras que si usamos el plugin jqgrid anterior (antes de la versión 3.8), el evento onPaging funcionará, pero hay un error en la paginación después de usar este evento. Incrementar el valor de la página, ya sea que el usuario haga clic en Aceptar o cancelar (en ambos casos). Lo que conduce a datos corruptos de paginación.

Cuestiones relacionadas