Mantener posición del scroll en Chrome

Eva Higueras | 24 de junio de 2011 | 2 comentarios

Más sobre: ASP.NET | Tags: , , ,

Cuando desarrollamos páginas Web en .Net, habitualmente utilizamos la propiedad MaintainScrollPositionOnPostback para que al volver de un postback de la página, la posición del scroll se mantenga. Esto evita que el usuario pierda su posición, y se desoriente, cuando trabaja con páginas con scroll vertical.
Esta propiedad se suele poner en el evento Page_Load de las páginas:

protected void Page_Load(object sender, EventArgs e)
{
      Page.MaintainScrollPositionOnPostBack = true;
}

Esta propiedad funciona correctamente en IExplorer, pero no funciona en todos los navegadores, como por ejemplo, en Chrome. Para que funcione en Chrome, debemos incluir un archivo de exploradores (Browser File) en nuestro proyecto.
Este es un archivo especial que podemos añadir a nuestra solución desde Visual Studio, desde el dialogo de Añadir Nuevo Elemento. El archivo de navegadores tendrá extensión .browser, y se colocará en la carpeta APP_BROWSERS.
Debemos incorporar lo siguiente para que la posición del Scroll se mantenga en los postback de las páginas:


    
      
        
      
    

Como podéis observar, el identificador del navegador que hay que utilizar para que funcione con Chrome, es Safari1Plus.
Para averiguar si el navegador sobre el que estamos ejecutando nuestra aplicación soporta por defecto esta propiedad, así como el identificador que debemos utilizar, y el resto de capacidades que tiene, podemos consultar las propiedades del objeto Request.Browser.

System.Web.HttpBrowserCapabilities browser = Request.Browser; 

Para más información, MSDN:
Browser Definition File Schema (browsers Element)
How to: Detect Browser Types and Browser Capabilities in ASP.NET Web Pages

Más sobre: ASP.NET | Tags: , , ,