![](/img/trans.png)
[英]Maintain Scroll Position Asynchronous Partial Page Postback Ajax With Master Page
[英]scroll position in div with master page
我在内容标签中有一个 div 标签,因为我正在使用具有 forms 和正文标签的母版页。
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<div id="xxx" style="overflow:scroll; height:450px;">
<asp:GridView ID="GridView1" runat="server" ...>
</asp:GridView>
</div>
</Content>
我希望在发生任何回发时保持 div 的滚动 position 。
当我搜索它时有 jscripts,但我不知道如何将它们与母版页一起应用。
如果有更简单的方法,请提供帮助。 或者如何在上面的代码中使用 javascript。
任何帮助表示赞赏..谢谢
您可以使用 AJAX 删除回发,这将保留您的 position。 更具体地说,您可以查看 UpdatePanel 控件。
更新:
非 AJAX 解决方案是在您的页面标记中添加以下属性。
<%@ Page MaintainScrollPositionOnPostback="true" %>
试试这个它对我有用。
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<div id="divScroll" style="overflow:auto; height:450px;">
<asp:GridView ID="GridView1" runat="server" ...>
</asp:GridView>
</div>
</Content>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
</script>
</asp:UpdatePanel>
javascript 文件添加以下代码:
var scrollTop;
function BeginRequestHandler(sender, args)
{
var m = document.getElementById('divScroll');
scrollTop = m.scrollTop;
}
function EndRequestHandler(sender, args) {
var m = document.getElementById('divGrid');
m.scrollTop = scrollTop;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.