2010-12-20 3 views
2

UpdatePanel 안에 몇 개의 텍스트 상자/레이블이 있습니다. 필자가 텍스트 상자 중 하나에서 탭 아웃하면 레이블을 일부 텍스트로 업데이트해야합니다. 이로 인해 페이지의 포커스가 맨 위에있는 요소로 재설정됩니다.ASP.NET 포커스 페이지를 입력으로 스크롤

이것은 데이터 입력 양식이며 사용자는 마우스를 전혀 사용할 필요가 없을 것으로 예상합니다. 나는 코드의 올바른 텍스트 상자에 다시 초점을 설정할 수 있습니다

Page.SetFocus(tbxInput); 

또는 IE에서

tbxInput.Focus(); 

는 브라우저의 스크롤 위치가 유지 (HOO 우!). Chrome과 Firefox에서는 그렇지 않습니다. 포커스 된 텍스트 상자가 페이지에 표시된 마지막 요소가되도록 스크롤 위치가 조정됩니다. 이것은 사용자에게 정말로 혼란 스럽습니다.

내 Web.config의에서 다음과 같은 규칙을 사용하고 있습니다 :

<pages theme="Default" styleSheetTheme="Default" maintainScrollPositionOnPostBack="true" validateRequest="false"> 

어떻게 IE가이 동작을 달성 할 수 있습니까?

답변

1

자바 스크립트에서 라벨 텍스트를 업데이트합니다 (웹 서비스 또는 페이지 메소드에 AJAX 호출 사용).

+0

레이블의 텍스트가 업데이트 될 때 포커스가 어떻게 재설정 되어도이 상황을 우회 할 수 있습니까? 이 일을해야하는 것이 과잉이라고 생각합니다. [ – Harper

+0

@Harper 당신의 의견에 대한 답변을 찾았습니까? –

+0

@Tristan Descartes, 내 솔루션 (javascript에서 라벨을 업데이트) 포커스를 잃지 않도록합니다. OP가 실행중인 문제는 그의 UpdatePanel이 포스트 백을 수행하고 코드에 의해 업데이트되는 것입니다. 그러나, 내 솔루션을 순수 자바 스크립트, 포스트 백을 발생하지 않고 포커스를 완전히 그대로 둡니다. 서버에서 일부 값을 가져와야하는 경우 자바 스크립트에서 AJAX를 사용할 수도 있습니다. – tster

0

asp.net 사용하기 AJAX UpdatePanel은 옵션입니다. 또한 어떤 버전의 .net 프레임 워크를 사용하고 있습니다.

4.0과 함께 per this으로 작동해야하지만 시도하지는 않았습니다.

관련 문제