MaintainScrollPositionOnPostback

septiembre 25, 2015 at 3:26 pm Deja un comentario

Muchas veces nos habremos visto en la necesidad de volver a un punto de la página después de hacer un postback para que el usuario no tuviera que utilizar el scroll lateral.

Normalmente yo suelo utilizar un focus() en javascript si se trata de un formulario y lo añado con ClientScript.RegisterClientScriptBlock. El problema es cuando no hay ningún elemento al que hacer foco (un input o textarea por lo general).

Esto funciona. Quizás no es elegante. Al mismo tiempo hay que meterlo por código y quizás no va en la filosofía de .NET de automatizar con un código además optimizado.

Actualmente esto que yo hacía por código en .NET se haría con <control >: .Focus().

No obstante, puede optimizarse más, y para eso viene en nuestra ayuda el atributo MaintainScrollPositionOnPostback que podemos añadir a la directiva Page de nuestro html. Esto hará que se guarde la posición exacta en píxeles en unos hidden y se restaurará automáticamente mediante javascript.

Con esto se genera lo siguiente en el html:

<input type=”hidden” name=”__SCROLLPOSITIONX” id=”__SCROLLPOSITIONX” value=”0″ />

<input type=”hidden” name=”__SCROLLPOSITIONY” id=”__SCROLLPOSITIONY” value=”257″ />

theForm.oldSubmit = theForm.submit;

theForm.submit = WebForm_SaveScrollPositionSubmit;

theForm.oldOnSubmit = theForm.onsubmit;

theForm.onsubmit = WebForm_SaveScrollPositionOnSubmit;

theForm.oldOnLoad = window.onload;

window.onload = WebForm_RestoreScrollPosition;

// –>

Si queréis alternar el comportamiento de la página para que a veces lo haga y otras no, en vez de desactivar este comportamiento, Scott Mitchell nos lo explica para que funcione a las mil:
http://aspnet.4guysfromrolla.com/articles/111407-1.aspxEste enlace abre una nueva ventana

Anuncios

Entry filed under: formularios.

DropDownList y AppendDataBoundItems App_offline.htm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Categorías

septiembre 2015
L M X J V S D
« Ene    
 123456
78910111213
14151617181920
21222324252627
282930  

Entradas recientes

Mis links en del.icio.us

Feeds


A %d blogueros les gusta esto: