使用母版页在div中滚动位置

时间:2011-05-24 15:25:17

标签: c# javascript asp.net gridview html

我在内容标记中有一个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。

感谢任何帮助..谢谢

2 个答案:

答案 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;
}