Pregunta

Tengo un panel de actualización dentro del cual tengo una lista de datos.

Este panel de actualización se activa cada 1 segundo para recuperar los datos de la base de datos.

He mantenido este panel de actualización dentro de una etiqueta div habilitada para desplazamiento vertical.

¡Pero cuando obtengo nuevos datos, la barra de desplazamiento no se ajusta automáticamente!

He intentado mantener la opción de reservas pero no funciona.

¿Hay alguna opción para mantener la barra de desplazamiento en su posición original después de que se active el panel de actualización?

¿Fue útil?

Solución

Esto es lo que prefiero evitar JavaScript, que necesita ajustar la posición de desplazamiento cada actualización / actualización ...

Supongo que debes haber diseñado una página como la de abajo

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional/Always">
    <ContentTemplate>
        <div style="height: 400px/300px; overflow-y:scroll;"> 
            <asp:DataList ID="DataList1" runat="server">
                ....
            </asp:DataList>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

Cámbielo a algo como esto, debería solucionar el problema de desplazamiento

<div style="height: 400px/300px; overflow-y:scroll;"> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional/Always">
        <ContentTemplate>
                <asp:DataList ID="DataList1" runat="server">
                    ....
                </asp:DataList>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>

Otros consejos

Intenta esto:

<script>
  var prm = Sys.WebForms.PageRequestManager.getInstance();
  prm.add_beginRequest(function(){
     window.dTop = document.getElementById('divIdHere').scrollTop;
  });

  prm.add_endRequest(function(){
       setTimeout(function(){
         document.getElementById('divIdHere').scrollTop = window.dTop;
      },100);
  });
</script>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top