0

ASP.NET을 사용 중이며 Wizard 컨트롤에 라디오 버튼이 있습니다. "예"를 선택하면 패널이 표시되지만 "아니요"를 선택하면 패널이 숨겨집니다. ActiveStepChanged 이벤트가 False로 변경되지만 다음 마법사 단계를보기 위해 다음을 클릭하면 페이지의 맨 위에서 시작하도록 MaintainScrollPositionOnPostBack을 True로 설정했습니다. 문제는 다음을 클릭 한 후 처음 라디오 버튼을 클릭하면 처음부터 라디오 버튼을 클릭 할 때마다 페이지 상단으로 이동합니다 (페이지는 그 위치를 유지합니다). 처음으로 점프하는 것을 멈추게하려면 어떻게해야합니까?ASP.NET : AutoPostBack을 사용할 때 페이지가 점프하는 것을 멈추는 방법?

답변

2

당신은 다시 게시의 현재 화면 위치를 유지하기 위해 UpdatePanel

+1

또한 당신이 ASP 스크립트 관리자를 필요로하는 ASP 업데이트 패널을 사용하는 것을 주목해야한다. 페이지 당 하나의 스크립트 관리자 (http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.aspx) 만 허용됩니다. 모든 요청을 처리합니다. – m4tt1mus

+1

@mattimus : 좋은 지적입니다. 함께 진행하려면 (한 스크립트 관리자 만 페이지에있을 수 있다는 사실), 사용자 정의 컨트롤에 ScriptManager를 두지 마십시오. 한 페이지에 두 개 이상의 UC가 필요할 수 있으므로 페이지에 넣으십시오. –

+0

감사합니다. – Sara

3

설정 Page.MaintainScrollPositionOnPostBack = true에 컨트롤을 넣어 완전 새로 고침을 수행에서 페이지를 중지 할 수 있습니다.

JavaScript를 통해 직접 시도하는 것보다 쉽습니다.

1

이 답변을 알고 있지만, 나는 내가 비슷한 문제가 있었는지와 나는 받아 들일만한 해결안을 찾았던 프로젝트에서 아약스를 사용할 수 없다. 마스터 페이지가있는 페이지 내에 사용자 정의 컨트롤이 있습니다. 사용자 컨트롤에는 포스트 백을 트리거하는 하단 근처에 몇 개의 컨트롤이있는 입력 폼이 있습니다. 마스터 페이지의 주 콘텐츠 div는 스크롤하기 쉽도록 만듭니다 (너무 커서). 내가 발견 한 해결책은 페이지 포커스를 C# 코드 숨김의 포스트 백에 의해 트리거되는 이벤트에 대한 컨트롤로 설정하는 것이 었습니다. 예를 들어 는 :

protected void cbShip_CheckedChanged(object sender, EventArgs e)  
{ 
    if (cbShip.Checked) 
    { 
     pnlShip.Visible = true; 
     Page.SetFocus(ddlShipCountry); 
    } 
    else 
    { 
     pnlShip.Visible = false; 
    } 
    return; 
} 
관련 문제