Mantener la posición del Scroll en ASP.NET


En páginas web largas, es preferible mantener la posición del scroll en la misma después de hacer postback, de manera que el usuario continúe donde se quedó. Para conseguirlo, podemos utilizar tres métodos, uno global a la aplicación y el resto específico a cada página:

  • En el archivo de configuración Web.config, ubique la sección <pages> y agregue el siguiente atributo estableciendo a su valor a “true”:
    maintainScrollPositionOnPostBack="true"
    Lo anterior mantendrá la posición del scroll para todas las páginas web de sitio.
  • En la declaración a nivel de página (@Page), agregue el atributo homólogo al anterior con el mismo valor:
    <%@ Page MaintainScrollPositionOnPostback="true" %>
    Con esto se mantiene la posición del scroll únicamente para la página en cuestión.
  • Se se requiere realizarlo mediante código, se puede utilizar: System.Web.UI.Page.MaintainScrollPositionOnPostBack = true; Lo cual es equivalente a realizarlo en la declaración a nivel de página.

+info:

Acerca de Willy Mejia

Developer, Techie, Human... http://about.me/willyxoft
Esta entrada fue publicada en ASP.NET. Guarda el enlace permanente.

9 respuestas a Mantener la posición del Scroll en ASP.NET

  1. rockrin dijo:

    Gracias x la ayuda!!

  2. Falfost dijo:

    Excelente!! funciona a la perfeccion… muchas gracias por la info…

  3. eac9 dijo:

    Gracias por la ayuda!

  4. Omar dijo:

    funciona en otro navegador que no sea IE??

    • Willy Mejia dijo:

      Respuesta rápida (y para fines prácticos): No.

      Dado que se trata de una funcionalidad responsabilidad del browser, funciona en los browsers que implementen dicha funcionalidad. Entre ellos y principalmente IE, pero me parece que también otros lo están implementando…

      • Willy Mejia dijo:

        To support the scroll position capability in Chrome, you need to follow the steps given below:

        Add the following line of code in the Page_Load of the page for which you want to maintain the scroll position.

        this.MaintainScrollPositionOnPostBack = true;

        Right click on the project.

        Click on “Add” -> “Add New Item”.

        In the “Add New Item” window, select “Browser File” and click “Add”.

        Application will ask you to place this file in “App_Browsers” folder, click “Yes”

        Now add the capability of maintaining the scroll position as follows:

        <browsers>
        <browser refID="Safari1Plus">
        <capabilities>
        <capability name="supportsMaintainScrollPositionOnPostback" value="true" />
        </capabilities>
        </browser>
        </browsers>

  5. Mario dijo:

    Pues a mi no me funcionó ninguna solución

    • Willy Mejia dijo:

      Toma en cuenta que la nota fue escrita hace tiempo para ASP.NET WebForms y cumpliendo ciertas condiciones… Ahora existen nuevos patrones y formas de trabajar con ASP.NET.

      Espero encuentres la solución a tu problema y nos la aportes en un comentario. Gracias de antemano.

      Saludos.

Deja un comentario