我在内容标记中有一个div标记,因为我使用的是包含表单和正文标记的母版页。
<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的滚动位置。
当我搜索它时有jscripts但我不知道 如何将它们应用于母版页。
如果有更简单的方法,请提供帮助。或者如何在上面的代码中使用javascript。
感谢任何帮助..谢谢
答案 0 :(得分:2)
您可以使用AJAX删除将保留您的位置的回发。更具体地说,您可以查看UpdatePanel控件。
<强>更新强>
非AJAX解决方案是在页面标记中添加以下属性。
&lt;%@ Page MaintainScrollPositionOnPostback =“true”%&gt;
答案 1 :(得分:1)
试试这个对我有用。
<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;
}