asp.net updatepanel postback scroll

Mantenga la posición de desplazamiento del panel en la devolución parcial de datos ASP.NET



updatepanel postback (2)

Agregue MaintainScrollPositionOnPostback = "true" a su directiva de página.

Tengo un gridview que puso en el panel de ASP.NET. Tanto el panel como Gridview están en un UpdatePanel. hay una columna en gridview que causa parciales PostBacks. Quiero mantener la posición de desplazamiento del panel en esas devoluciones. ¿Hay alguna manera? Saludos.


No hay una facilidad incorporada para resolverlo en asp.net

Sin embargo, hay una solución para este problema; Necesitas manejarlo con javascript.

La solución se menciona aquí: mantener la posición de la barra de desplazamiento dentro de UpdatePanel después de un envío parcial

Editado el 20 de mayo de 2012; despues de ver los comentarios

<form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release" /> <script type="text/javascript"> // It is important to place this JavaScript code after ScriptManager1 var xPos, yPos; var prm = Sys.WebForms.PageRequestManager.getInstance(); function BeginRequestHandler(sender, args) { if ($get(''<%=Panel1.ClientID%>'') != null) { // Get X and Y positions of scrollbar before the partial postback xPos = $get(''<%=Panel1.ClientID%>'').scrollLeft; yPos = $get(''<%=Panel1.ClientID%>'').scrollTop; } } function EndRequestHandler(sender, args) { if ($get(''<%=Panel1.ClientID%>'') != null) { // Set X and Y positions back to the scrollbar // after partial postback $get(''<%=Panel1.ClientID%>'').scrollLeft = xPos; $get(''<%=Panel1.ClientID%>'').scrollTop = yPos; } } prm.add_beginRequest(BeginRequestHandler); prm.add_endRequest(EndRequestHandler); </script> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Panel ID="Panel1" runat="server" Height="300"> <%-- Some stuff which would cause a partial postback goes here --%> </asp:Panel> </ContentTemplate> </asp:UpdatePanel> </form>

A continuación se muestra la instantánea de código: