2007년 05월 23일
ScriptManager의 ScriptMode 옵션의 의미는?
어제 하루 종일 고민하던 문제가 간단한 몇 글자로 해결이 되었다. 그냥 해결되는 것 만으로는 성이 풀리지 않기 때문에 자료를 여기저기서 찾아 봤지만 도대체 왜 해결이 된건지 이해하기 힘들었다.
관련글 : http://forums.asp.net/t/1100774.aspx
AJAX.NET을 페이지에 적용하기 위해서 추가한 <asp:ScriptManager> 컨트롤의 속성값 중에 ScriptMode 라는 것이 있다. 기본값은 Auto 이며 4가지 정도의 값을 가질 수 있는 속성이다. 문제가 발생했던 페이지에서는 <asp:UpdatePanel>이 업데이트 되면서 동적으로 사용자 정의 컨트롤의 속성이 Visible='false' 에서 Visible='true'로 바꿔주는 로직이 있었다. 분명히 Trigger로 해당 사용자 정의 컨트롤을 지정해줬음에도 컨트롤을 찾을 수 없다는 에러 라던가, 자바스크립트 에러가 발생하는 상황이었다.
포스트 백이 일어나면서 동적으로 추가된 컨트롤을 제대로 못찾으면서 값을 참조 못하는 것 같기는 했는데, AJAX.NET 자바스크립트 코드를 보기도 귀찮고 해서 열심히 구글링을 해봤지만 별다른 해결책이 없었다. 그러던중, 위에 링크된 주소에서 볼 수 있는 것 처럼 <asp:ScriptManager>에 ScriptMode="Release"로 강제 설정해 줌으로써 모든 문제는 해결되어 버렸다.
기술문서를 아무리 찾아봐도 Debug / Release 시에 적절한 스크립트 파일을 내려주기 위한 것이라고만 기술되어 있다. 진정으로 자바스크립트를 뒤져 봐야 한다는 말인가 -_-... 어쨌든 혹시나 비슷한 문제를 겪는 사람이 있을지 몰라서 포스팅 해본다. AJAX.NET을 실제 프로젝트에 적용하다 보니 이것저것 걸리적 거리는 넘들이 많다. 오늘 중으로 Migration 마무리 해야 할텐데.. 킁.. ㅜ.ㅜ
- NoPD -
관련글 : http://forums.asp.net/t/1100774.aspx
AJAX.NET을 페이지에 적용하기 위해서 추가한 <asp:ScriptManager> 컨트롤의 속성값 중에 ScriptMode 라는 것이 있다. 기본값은 Auto 이며 4가지 정도의 값을 가질 수 있는 속성이다. 문제가 발생했던 페이지에서는 <asp:UpdatePanel>이 업데이트 되면서 동적으로 사용자 정의 컨트롤의 속성이 Visible='false' 에서 Visible='true'로 바꿔주는 로직이 있었다. 분명히 Trigger로 해당 사용자 정의 컨트롤을 지정해줬음에도 컨트롤을 찾을 수 없다는 에러 라던가, 자바스크립트 에러가 발생하는 상황이었다.

기술문서를 아무리 찾아봐도 Debug / Release 시에 적절한 스크립트 파일을 내려주기 위한 것이라고만 기술되어 있다. 진정으로 자바스크립트를 뒤져 봐야 한다는 말인가 -_-... 어쨌든 혹시나 비슷한 문제를 겪는 사람이 있을지 몰라서 포스팅 해본다. AJAX.NET을 실제 프로젝트에 적용하다 보니 이것저것 걸리적 거리는 넘들이 많다. 오늘 중으로 Migration 마무리 해야 할텐데.. 킁.. ㅜ.ㅜ
- NoPD -
# by | 2007/05/23 14:56 | [IT] .NET Framework | 트랙백



