0

我的页面上有两个 div。第一个(optionSelect)不可滚动并停留在页面的最顶部。另一个(dataView)是可滚动的,位于第一个的正下方。

我正在尝试使用 scrollTop 在回发中保留第二个 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
    }
4

2 回答 2

0

我的 C# 函数被调用的顺序是错误的。

我必须在 GetScrollPosition() 之前 SetScrollPosition()。我认为 SetScrollPosition() 会在页面加载之前被调用,因为 beforePagePostback() 在页面更新之前被调用..但显然不是。

于 2013-08-14T16:09:06.300 回答
0

不是一个真正的答案,但你的 javascript 说 div.dataStyle 并且你的 css 类是 dataView。这些应该是相同的还是我们没有看到的其他东西?

没有 C# 但滚动顶部正在工作:http: //jsfiddle.net/ecarlsonweb/ys3LA/

var currentScroll = "40"; 

$(function(){
    $("div.dataView").scrollTop(currentScroll);
});
于 2013-08-14T00:41:32.503 回答