var xPos1, yPos1; var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_pageLoading(pageLoadingHandler); prm.add_pageLoaded(pageLoaded); function pageLoaded(sender, args) { $get('<%=Panel_Users.ClientID %>').scrollLeft = xPos1; $get('<%=Panel_Users.ClientID %>').scrollTop = yPos1; } function pageLoadingHandler(sender, args) { xPos1 = $get('<%=Panel_Users.ClientID %>').scrollLeft yPos1 = $get('<%=Panel_Users.ClientID %>').scrollTop; } </script> </asp:Content>
不起作用,我哪里出问题了
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" /> <div style="height: 504px; width: 941px;"> <asp:Panel runat="server" ID="Panel_Users" ScrollBars="Auto" Style="z-index: 1; left: 748px; top: 621px; position: absolute; height: 250px; width: 287px"> <asp:UpdatePanel UpdateMode="Conditional" ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:GridView ID="Grid_UserTable" runat="server" Style="z-index: 1; left: 2px; top: 5px; position: absolute; height: 152px; width: 243px" BorderColor="#666666" AutoGenerateColumns="False" OnRowDataBound="MyGrid_RowDataBound"> <Columns> <asp:TemplateField HeaderText="Status"> <ItemTemplate> <asp:Image ID="Status" runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="TimeReceived" HeaderText="TimeReceived" InsertVisible="False" ReadOnly="True" SortExpression="TimeReceived" /> <asp:BoundField DataField="TimeRead" HeaderText="TimeRead" SortExpression="TimeRead" /> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> </Columns> </asp:GridView> </ContentTemplate> </asp:UpdatePanel> </asp:Panel> </div>
我试图使页面每5秒钟刷新一次并且页面转到顶部时,页面停留在相同位置。我尝试了Page MaintenanceScrollPositionOnPostback =“ true”。它没有用,我尝试使用Ajax,但不知道如何使用它。有人可以帮助我如何使用Ajax进行操作。
MaintenanceScrollPositionOnPostback仅在IE中有效。为此,您可以滚动自己的客户端脚本,也可以在页面/表单的不同部分使用锚链接。
在web.config中进行设置后,maintainScrollPositionOnPostback =“true”在全局范围内不起作用,但在页面级别起作用,我该怎么办?