我怎样才能回到页面的相同位置postback.它总是似乎到达页面的顶部.
我试过用了 maintainScrollPositionOnPostBack = "true"
但它不起作用.
谢谢,山姆
我在使用asp.net和更新面板时遇到了一些麻烦.问题是,每次从更新面板发生部分回发时,页面都会滚动回顶部.在我的大多数页面上,这不是一个大问题,但在某些页面上可能会花很长时间.然后,当用户在页面底部时,我会RadListView在其中显示jQuery弹出窗口,用户可以在此列表中选择元素.但是单击此元素会导致部分回发和页面跳转回到顶部.
我通过互联网查看,无法找到解决问题的方法.当然设置MaintainScrollPositionOnPostback什么都不做.
有谁知道任何可以帮助我解决这个问题的东西?
干杯,Pako
我有一个显示在div中的GridView,它包含在asp.net页面上的UpdatePanel控件中.div设置为在显示大量信息时使GridView可滚动,同时使更新面板中的其他信息保持稳定.
无论如何,GridView中的项目是可点击的,但无论我尝试什么,都不会通过回发保留包含div的滚动位置.目前我正在尝试用jQuery来解决这个问题,因为这似乎是最简单的方法.我的代码如下:
<head id="Head1" runat="server">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
var scroll = function () {
Y: '#<%= scrollPos.ClientID %>'
};
$(document).ready(function () {
$("#subResults").scrollTop($(scroll.Y).val());
$('#subResults').scroll(function () {
$(scroll.Y).val(this.scrollTop);
});
});
</script>
</head>
<body>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="resultPanel" runat="server" ChildrenAsTriggers="True" UpdateMode="Conditional">
<ContentTemplate>
<div id="subResults">
<asp:GridView ID="resultGrid" runat="server"
AutoGenerateColumns="false" Visible="True"
AutoGenerateSelectButton="True"
OnRowDataBound="resultGrid_RowDataBound"
OnSelectedIndexChanged="resultGrid_SelectedIndexChanged">
<Columns>
// columns columns columns...
</Columns>
</asp:GridView>
<asp:HiddenField ID="scrollPos" runat="server" Value="0" />
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
我正在使用这里给出的例子.无论我是否尝试完全按照给定的方式执行此操作,它都不起作用:我的GridView项目接受单击,执行它应该执行的操作,然后在Postback完成后GridView再次滚动到顶部.如何让我的div"subResults"通过Postback保持其滚动位置?
在updatepanel中有一个计时器.它不断刷新(大约每2.5秒).如果在滚动时刷新它将滚动位置设置回原来的部分更新:(
我正在使用ASP.NET 3.5并且MaintainScrollPositionOnPostback设置为false(即使设置为true行为不会更改).
不知道为什么会这样,但可用性很烦人......
亲切的问候,Sascha
asp.net ×4
ajax ×2
c# ×2
.net ×1
gridview ×1
javascript ×1
jquery ×1
postback ×1
updatepanel ×1