我注意到在使用<asp:panel>或<asp:UpdatePanel>之后,我的页面在页面完成呈现后正在跳转/向下滚动。在异步回发之后,页面移动到相同的位置,而不是停留在原来的位置。我的页面后面的代码中没有任何焦点设置。
可能值得一提的是,在页面加载时,我正在更新<asp:UpdatePanel>中的一些<asp:UpdatePanel>控件。主要是数据库驱动的下拉列表。
我想知道有没有人知道为什么一页会跳下去。是否存在某些默认焦点或某些asp.net控件发生的情况?
提前感谢你的帮助,
我尝试过的事情:
Update1:我使用了David 脚本来获得正确的位置。然而,页面仍然向下跳,然后跳回正确的位置。我的目标是让这一页根本不跳。
这是我的页面的标记,在这些之间有控制。
<asp:UpdatePanel ID="UpdatePanel9" runat="server">
<asp:Panel ID="tagpanel" runat="server" DefaultButton="btnAddTag">
</asp:Panel>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel5" runat="server">
<asp:Panel ID="pnlIncidentInfo" runat="server">
</asp:Panel>
</asp:UpdatePanel>发布于 2012-08-23 20:39:07
备注这里描述的问题是而不是与MaintainScrollPositionOnPostback有关。我自己也有过这个问题,这与UpdatePanel控件有关。
首先,在ContentTemplate中设置一个名为"scrollDiv“的div。
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="scrollDiv">
The rest of your page content goes here.
</div>
</ContentTemplate>
<asp:UpdatePanel>然后,如本文所述,JavaScript会在页面上搜索ScriptManager
<script type="text/javascript">
var xPos, yPos;
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
xPos = $get('scrollDiv').scrollLeft;
yPos = $get('scrollDiv').scrollTop;
}
function EndRequestHandler(sender, args) {
$get('scrollDiv').scrollLeft = xPos;
$get('scrollDiv').scrollTop = yPos;
}
</script>发布于 2012-08-23 20:38:15
https://stackoverflow.com/questions/12099558
复制相似问题