트리 뷰가있는 사용자 정의 컨트롤이 있습니다. 사용자가 노드를 확장 할 때마다 업데이트 패널을 사용하여 노드가 다시로드됩니다. 사용자가 다시로드 할 때마다 treeview를 스크롤하지 못하게하려면 현재 div의 scrollTop 값을 캡처하여 텍스트 상자에 저장 한 다음 다시 게시 한 다음 해당 값을 가져 와서 다시로드해야합니다. 모든 것이 하나의 이상한 행동을 제외하고 효과적입니다. 이 사업부입니다 :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>
이는 masterpage에있는 자바 스크립트 기능입니다 :
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
}
문제는이 실 거예요 작업 난이 "경고()"를에 추가하지 않는 것입니다 자바 스크립트는 다음과 같이 :
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