javascript로 ASP.NET AJAX의 UpdatePanel 컨트롤을 업데이트 시키는 방법을 따라하면 일반적인 경우에는 잘 된다.
그러나 마스터 페이지를 사용하는 페이지에 UpdatePanel을 넣은 경우에는 다음과 같이 __doPostBack 했을 때,
__doPostBack('<%= UpdateUpanelBtn.ClientID %>', '');
PostBack은 발생하지만 버튼 이벤트 핸들러에 들어가지를 않아서 원하는대로 화면이 갱신되지 않는다.
왜 잘 안될까 다른 방법을 써서 마구 삽질하다가, 우연히 ClientID 대신 UniqueID로 바꿔봤는데 잘 된다는 것을 알게됐다.
사실 Page_Load 이벤트 같은데 브레이크 포인트를 걸어놓고, 비동기 PostBack이 발생했을 때 Request.Form 컬렉션을 잘 살펴보면, 컬렉션에 들어가 있는 문자열들은 모두 컨트롤의 ClientID가 아니라 UniqueID 라는 것을 알 수 있다.