我的页面上有两个div。第一个(optionSelect)不可滚动并保持在页面的最顶部。另一个(dataView)是可滚动的,位于第一个下面。
我正在尝试使用scrollTop在postbacks上保留第二个div的滚动条位置,但它不起作用。我验证了scrollTop()值是通过在TextBox中显示来设置的。
在页面更新中,我将该TextBox中的文本更改为div2的scrollTop()值。 (工作)
在页面加载时,我想将div2的scrollTop()设置为上一个值。 (不工作)
有人能告诉我我做错了吗?
CSS:
.optionSelect {
font-family: Consolas;
overflow: hidden;
position: absolute;
width: 100%;
height: 245px;
}
.dataView {
overflow: auto;
position: absolute;
width: 100%;
top: 245px;
bottom: 0;
}
body {
overflow: auto;
width: 100%;
height: 100%;
}
使用Javascript:
var currentScroll = "<%=GetScrollPosition()%>"; // C# function to get scroll position value
$("div.dataStyle").scrollTop(currentScroll);
function beforePagePostback() {
$("#loadingImage").show();
var position = $("div.dataStyle").scrollTop();
$("#ScrollPositionTextBox").prop("value", position); // sets scroll position to text box
"<%=SetScrollPosition()%>"; // C# func that gets the scroll position from the text box
}
答案 0 :(得分:0)
不是真的答案,但你的javascript说div.dataStyle和你的css类是dataView。这些应该是同一个还是还有其他我们没有看到的东西?
没有C#但是scrolltop正在运行:http://jsfiddle.net/ecarlsonweb/ys3LA/
var currentScroll = "40";
$(function(){
$("div.dataView").scrollTop(currentScroll);
});
答案 1 :(得分:0)
调用我的C#函数的顺序是错误的。
我必须在GetScrollPosition()之前使用SetScrollPosition()。我认为SetScrollPosition()会在页面加载之前被调用,因为在页面更新之前调用beforePagePbackback()..但显然不是。