OnClick이 코드 숨김 이벤트에 바인딩되어있는 웹 양식에 Button이 있다고 가정 해보십시오.컨트롤을 마스터 페이지 나누기 이벤트 바인딩으로 이동합니까?
그런 다음이 단추를 마스터 페이지의 컨트롤 컬렉션에 추가하여 마스터 페이지로 옮깁니다. 이것은 런타임시 Page_Load 이벤트에서 수행됩니다.
어디로 OnClick 이벤트가 지금 바인딩되어 있습니까? 여전히 웹 양식의 코드 숨김 또는 마스터 페이지의 코드 숨김을 조사하고 있습니까?
나는 단지 이것을했는데, 이제는 내 버튼이 아무 것도하지 않습니다. 페이지를 다시 게시하지만 실제로 코드 숨김에서 바인딩 된 이벤트를 실행하지는 않습니다.
두 경우 모두 버튼의 HTML을 확인했습니다. 변경된 유일한 것은 명명 컨테이너의 변화를 반영하기 위해 ID와 이름을했다 :
<input type="submit" id="ctl00_MainContent_DeleteButton" value="Yes, Delete" name="ctl00$MainContent$DeleteButton"/>
마스터 페이지에서 : 웹 양식에서
를 ("MainContent"는의 ContentPlaceHolder이다)
<input type="submit" id="ctl00_DeleteButton" value="Yes, Delete" name="ctl00$DeleteButton"/>
나는 디버거를 실행했으며 바운드 이벤트를 더 이상 만지지 않는다는 것을 확인할 수 있습니다.
이벤트에 바인드하는 ID 또는 이름입니까? 그렇다면 마스터 페이지로 이동하면이 바인딩이 해제됩니까?
렌더링 된 HTML에 JavaScript가 누락되었다고 말하고 있습니까? 어딘가에 __doPostBack (eventTarget, eventArgument)에 대한 호출이 있어서는 안됩니까? – Josh
거기에 렌더링 된 HTML이 있으므로, 거기에 없으면 렌더링되지 않습니다. 이것은 컨트롤이 이동했을 때 이벤트 처리기의 연결이 끊어 졌다고 생각하게합니다. – Deane