Mantener Posición del Scroll después de un postback asíncrono

.Net, General Add comments

Que divertido es Javascript, y como echaba de menos un proyecto como el de ahora, casi todo en cliente, pero a pelo sin esas maravillosas facilidades que aporta Silverlight...., bueno algunas si, haciendo uso de Framework de AJAX de Microsot. El contenido de este Post es el típico conocimiento que en mi caso nunca me acuerdo y tengo que echar manos de algun proyecto para recuperarlo. Nunca Mais :)

JAVASCRIPT:
  1. var xPos, yPos;
  2. var prm = Sys.WebForms.PageRequestManager.getInstance();
  3. prm.add_beginRequest(BeginRequestHandler_scroll);
  4. prm.add_endRequest(EndRequestHandler_scroll);
  5.  
  6. function BeginRequestHandler_scroll(sender, args) {
  7.  if (document.getElementById('gridClientScroll')) {
  8.         var item = document.getElementById('gridClientScroll');
  9.  
  10.         xPos = item.scrollLeft;
  11.         yPos = item.scrollTop;
  12.     }
  13. }
  14. function EndRequestHandler_scroll(sender, args) {
  15.  
  16.     if (document.getElementById('gridClientScroll')) {
  17.         var item = document.getElementById('gridClientScroll');
  18.  
  19.         item.scrollLeft = xPos;
  20.         item.scrollTop = yPos;
  21.     }
  22. }

El código creo que no necesita explicación. Simplemente obtenemos los valores X e Y de elemento con Scroll que queremos persistir después del postback y lo guardamos, para posteriormente, volverlos a establecer. Para ello,   añadimos un manejador de eventos para antes y después del postback asíncrono, de manera que cada uno de ellos ejecute la función que le especificamos.

One Response to “Mantener Posición del Scroll después de un postback asíncrono”

  1. Sílvia Mur Says:

    Bieeeeeeeeen!! Por fin algo que funciona de verdad, no como el puñetero MaintainScrollAfterPostback!

    Muchas gracias, me ha sido muy útil! :)

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Acceder

Switch to our mobile site