1
我有一个树形视图的用户控件。每次用户扩展节点时,都会使用更新面板重新加载。为了防止用户在每次重新加载时都必须滚动浏览treeview,我想捕获当前div的scrollTop值,将其保存到文本框中,然后在回发后获取该值并重新加载它。除了一个奇怪的行为,一切都有效这是div:设置div滚动条位置
<div ID="treePanel" runat="server" class="treePanel" onscroll="setScroll(this.scrollTop)" onunload="testScroll()" >
<asp:TextBox ID="scrollTb" runat="server" Text="" ></asp:TextBox>
<asp:TreeView ID="TreeView1" runat="server"
OnTreeNodeExpanded="Node_Expand" CollapseImageToolTip="Click To Collapse" ExpandImageToolTip="Click To Expand">
</asp:TreeView>
</div>
,这是JavaScript函数,这是在母版:
function setScroll(getVal){
var getTb = document.getElementById("ctl00_ContentPlaceHolder1_rmsStepThree1_scrollTb")
getTb.value= getVal
}
function testScroll(){
var getTb = document.getElementById("ctl00_ContentPlaceHolder1_rmsStepThree1_scrollTb")
var getDiv = document.getElementById("ctl00_ContentPlaceHolder1_rmsStepThree1_treePanel")
getDiv.scrollTop= getTb.value
}
的问题是,这不会工作,除非我“警报()”中的添加JavaScript的,就像这样:
function testScroll(){
var getTb = document.getElementById("ctl00_ContentPlaceHolder1_rmsStepThree1_scrollTb")
var getDiv = document.getElementById("ctl00_ContentPlaceHolder1_rmsStepThree1_treePanel")
alert('some text')
getDiv.scrollTop= getTb.value
}
任何人都可以解释为什么这是这种行为方式,以及如何补救呢?我显然不能在那里发出警报。
感谢 杰森
听起来不错。是的,我只是不知道在哪里致电更新。该页面本身没有被回发,只有用户控件被刷新。 – jason