我有一个div这样:维护后网页提交(ASP.NET)的股利滚动位置
<div style="overflow-y: scroll; height: 260px">
我包含了几百个记录,并让我选择一个项目来填充它下面的FormView控件。
问题是当页面回发时,滚动条的位置会回到div的顶部。我想尝试并保持其位置,以便所选记录仍可见。
任何想法?
我有一个div这样:维护后网页提交(ASP.NET)的股利滚动位置
<div style="overflow-y: scroll; height: 260px">
我包含了几百个记录,并让我选择一个项目来填充它下面的FormView控件。
问题是当页面回发时,滚动条的位置会回到div的顶部。我想尝试并保持其位置,以便所选记录仍可见。
任何想法?
地方是这样的:
<asp:HiddenField id="hdnScrollPos" runat="server"/> in your aspx.
然后,一些JavaScript这样的:
var hdnScroll = document.getElementById(<%=hdnScrollPos.ClientID%>);
var bigDiv = document.getElementById('bigDiv');
bigDiv.onscroll = function() {
hdnScroll.value = bigDiv.scrollTop;
}
window.onload = function() {
bigDiv.scrollTop = hdnScroll.value;
}
免责声明 - 不是我的代码,但我已经看到了这个使用前:
window.onload = function(){
var strCook = document.cookie;
if(strCook.indexOf("!~")!=0){
var intS = strCook.indexOf("!~");
var intE = strCook.indexOf("~!");
var strPos = strCook.substring(intS+2,intE);
document.getElementById("divTest").scrollTop = strPos;
document.getElementById("divTest").scrollTop = strPos;
}
}
function SetDivPosition(){
var intY = document.getElementById("divTest").scrollTop;
document.cookie = "yPos=!~" + intY + "~!";
}
的想法是滚动条的位置存储在cookie中。另一个(更好的?)选项将存储在一个隐藏的字段(或字段)中。希望让你去...
ASP.NET有这个内置的所有你需要做的是在你的页面指令中包含MaintainScrollPositionOnPostback。
<%@ Page Language="C#" MaintainScrollPositionOnPostback="true" %>
我怀疑这是否适用于嵌入式div,只是一般的主页。 – FlySwat 2009-07-26 13:52:03
是的,我不确定这将适用于页面中包含的DIV。虽然我没有尝试过。 – 2009-07-26 13:52:53
更换thebody
与document.getElementById("divTest")
如果您担心onscroll事件不工作,歌剧/ ff,你可以尝试改变
thebody.onscroll=SaveScrollLocation;
到
setInterval('SaveScrollLocation()", 500);
下面是使用JQuery这工作对我来说FlySwat的解决方案的更细化的方式:
var $ScrollPosition = $('#hfScrollPosition');
var $ScrollingDiv = $('#pnlGroupDataContent');
if ($ScrollPosition.length && $ScrollingDiv.length) {
// Store scrolling value
$ScrollingDiv.scroll(function() {
$ScrollPosition.val($ScrollingDiv.scrollTop());
});
// Set scrolling
$ScrollingDiv.scrollTop($ScrollPosition.val());
}
尝试了上述所有的,没有他们的满意工作铬v39,但本页使用的方法奇妙地工作:
我测试过但不工作 – telebog 2011-03-18 09:19:53