我有一個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