브라우저 세로 스크롤 막대의 위치를 가져 와서 ASP 페이지의 세션 변수에 저장하는 간단하고 효율적인 방법을 찾고 있습니다.브라우저 스크롤 위치 유지
내가하려고하는 것은 사용자가 페이지를 변경할 때 내가 세션 변수에 저장된 스크롤 위치를 가졌기 때문에 사용자가 페이지로 돌아 오면 페이지가 마지막 위치로 스크롤됩니다.
이 방법이 있습니까? 나는 다시 게시의 스크롤 위치를 지속하지만 아직 아무것도 나는 사람이 감사 할 올바른 방향 아이디 날 지점 수 있다면 :(
을 할 노력하고있어 정확히 무엇을하고하지의 예를 본 적이
편집 :.
좋아, 아래 예제를 기반으로 사용자가 내 gridview에서 행을 클릭하면 다음 페이지로 이동하지만 이벤트 처리기가 결코 실행되지 않는다는 것을 알게되었습니다. 이렇게하면 스크롤 위치가 저장 됨, 양식을 제출하지 않는 것 같음)
내 이벤트 처리기 모양 : 나는 값을 잡기 위해의 valueChanged 이벤트를 사용하고 세션
다음 내 스크립트에 넣어하는 것이 가장 생각 했어요
Protected Sub save(ByVal sender As Object, ByVal e As EventArgs) Handles ScrollPosition.ValueChanged
Session.Add("ScrollPosition", ScrollPosition.Value)
End Sub
.... 나는 그것을 기반으로 할 노력하고있어 Jquery에 대한 나의 매우 제한된 지식!
<script type="text/javascript">
$(function() {
//Retrieve and use the existing scroll position from the hidden field
var scrollPosition = $('#<%= ScrollPosition.ClientID %>').val();
$(window).scrollTop(scrollPosition);
/*
//Handle the main forms submit event and store the scroll position
$('#<%= form1.ClientID %>').submit(function() {
var currentScrollPosition = $(window).scrollTop();
$('#<%= ScrollPosition.ClientID %>').val(currentScrollPosition);
});
*/
});
$(document).ready(function() {
$("#gvTickets").click(function() {
var currentScrollPosition = $(window).scrollTop();
$('#<%= ScrollPosition.ClientID %>').val(currentScrollPosition);
})
});
</script>
스크립트 뒤에 아이디어는 gvTickets의 행을 클릭하면 스크롤 위치가 나는 오류를받지 못했습니다 내 값 변경 이벤트 핸들러
를 실행해야하는 저장된다는 것입니다하지만 나도 오전 없습니다
그런
If (Session("ScrollPosition") = Nothing) Then
ScrollPosition.Value = 0
Session("ScrollPosition") = 0
Else
ScrollPosition.Value = Session("ScrollPosition")
End If
하지 IsPostBack을 경우 : 내가 가진 원하는 동작 :(페이지로드에서 또한
을 받고
답장을 보내 주셔서 감사합니다. 어딘가에서 시작해 주셔서 감사합니다. 아직 답변이 없으므로 원본 게시물을 업데이트했습니다. – Purplegoldfish
건배,이 접근 방식은 내가하고 싶은 일을 더 잘 보이지만 여전히 ScrollPosition.ValueChanged 이벤트 핸들러는 결코 호출되지 않습니다. 나는 왜 오류가 발생하는지 정말 모르겠다. ( – Purplegoldfish
이유는 숨겨진 필드가 (js) 코드에서 업데이트되고 변경된 서버 측 이벤트를 시작하는 데 필요한 키 이벤트를 생성하지 않기 때문일 수있다. 그러나 숨겨진 필드에 대한 업데이트 빈도로 인해 스크롤 위치를 저장하는 가장 좋은 방법인지는 확실하지 않습니다. 페이지로드 이벤트에서 페이지가 다시 게시 될 때마다 스크롤 위치를 저장하지 않는 이유는 무엇입니까? – jdavies