UpdatePanel은 업데이트에서 업데이트 패널의 내용을 완전히 대체합니다. 이는 해당 업데이트 패널에 새로운 요소가 있으므로 가입 한 해당 이벤트가 더 이상 가입되지 않았 음을 의미합니다.
이 문제를 해결하기 위해 수행 한 작업은 모든 업데이트 후에 필요한 이벤트를 다시 구독하는 것입니다. 내가 사용 $(document).ready()
하고 Microsoft의 사용, 초기 부하 PageRequestManager
(사용 가능한 당신이 당신의 페이지에 업데이트 패널이있는 경우)에 대한 모든 업데이 트를 재 구독.
$(document).ready(function() {
// bind your jQuery events here initially
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
// re-bind your jQuery events here
});
는 PageRequestManager
업데이트 패널이 페이지에있는 경우 자동으로 사용할 수있는 자바 스크립트 객체입니다. UpdatePanel이 페이지에있는 한 코드를 사용하기 위해 위의 코드 이외의 작업을 수행하지 않아도됩니다.
보다 자세한 제어가 필요한 경우이 이벤트는 .NET 이벤트에 인수를 전달하는 방법과 유사한 인수를 전달합니다. (sender, eventArgs)
하므로 이벤트를 발생시킨 원인을 확인하고 필요한 경우에만 리 바인드 할 수 있습니다.
다음은 Microsoft의 최신 버전의 설명서입니다. msdn.microsoft.com/.../bb383810.aspx
필요에 따라 더 나은 옵션은 jQuery를 사용하는 것 .on()
입니다. 이 방법은 모든 업데이트에서 DOM 요소를 다시 구독하는 것보다 효율적입니다. 그러나이 방법을 사용하기 전에 모든 설명서를 읽으십시오. 요구 사항을 충족하거나 충족하지 못할 수 있습니다. 사용 리팩토링 불합리한 것이 jQuery를 플러그인이 많이 있습니다 .delegate()
또는 .on()
그렇게하는 경우는, 당신은 더 나은 다시 구독 길 이죠.