2011-07-05 6 views
9

asp.net 및 업데이트 패널에 문제가 있습니다. 문제는 업데이트 패널에서 부분 포스트 백이 발생할 때마다 페이지가 맨 위로 스크롤된다는 것입니다. 대부분의 내 페이지에서 이것은 큰 문제는 아니지만 일부 페이지에서는 상당히 길어질 수 있습니다. 그런 다음 사용자가 페이지 하단에있는 경우 RadListView과 함께 jQuery 팝업을 표시하고 사용자가이 목록에서 요소를 선택할 수 있습니다. 그러나이 요소를 클릭하면 부분 포스트 백이 발생하고 페이지가 위로 이동합니다.업데이트 패널에서 비동기 포스트 백 이후에 스크롤 위치 유지

인터넷을 통해 살펴본 결과 내 문제의 해결책을 찾을 수 없습니다. 물론 MaintainScrollPositionOnPostback으로 설정하면 아무런 효과가 없습니다.

이 문제를 해결하는 데 도움이 될만한 정보를 아는 사람이 있습니까?

건배, 파코

+1

중복 : http://stackoverflow.com/questions/5288682/maintain-panel-scroll-position-on- partial-postback-asp-net – Despertar

+0

... 또는 [Async postback 후 스크롤 위치 다시 설정 - ASP.NET] (http://stackoverflow.com/questions/616210/reset-scroll-position-after-async-postback-asp- 그물) – Bergi

답변

0

는 중계기의 일부 컨트롤의 ID를 사용하여 다시 게시가 완료된 후 스크롤 JQuery와 사용합니다.

생성하는 형식에 따라 일부 컨트롤의 ID를 가져올 수 있습니다.

1

오래전에 ERP에서 사용한 적이있는 약간의 해결책이 있습니다. 최상의 솔루션인지는 확실하지 않지만 작동합니다.

사용자 정의 페이지 클래스를 사용하는지 또는 기본값 인 System.Web.UI.Page을 사용하는지는 잘 모르겠지만, 어떻게하는지 설명하고, 구현할 수있는 최선의 방법을 찾아 봅니다. 너의 환경, 알 겠어?

예를 들어 ID가 "hfScrollPosition"인 HiddenField을 만듭니다.

그런 다음 자바 스크립트 이벤트를 document.onscroll 또는 이와 비슷한 것으로 만들고 이벤트 내에서 숨겨진 필드를 업데이트하여 현재 스크롤 위치를 가져옵니다. 예를 들면 다음과 같습니다. document.getElementById("hfScrollPosition").value = document.documentElement.scrollTop; 이렇게하면 본문 스크롤 위치에 따라 값을 다이나믹하게 업데이트 할 수 있습니다. 페이지의 일부 컨트롤이 포스트 백을 할 때 그래서, 당신은 당신의 Page_Load 이벤트에 다음과 같은 자바 스크립트 코드를 삽입 할 수 있습니다

document.documentElement.scrollTop = document.getElementById("hfScrollPosition").value;

그래서, 매번 페이지가 다시 게시를 얻을, 신체 스크롤 위치가 올바르게 업데이트됩니다 .


편집 : 나는 그것을 시뮬레이션 바이올린을했습니다 : https://jsfiddle.net/j26fpgzo/

관련 문제