특정 UpdatePanel이 로드된 후 클라이언트 측 javascript 함수를 호출하는 방법
특정 업데이트 패널이 로드된 후 클라이언트 측 javascript 메서드를 호출하려면 어떻게 해야 합니까?
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler)
업데이트 패널 로드 완료 후 부팅되며 클라이언트 측에서 어떤 패널인지 찾을 수 없기 때문에 작동하지 않습니다.
ScriptManager.GetCurrent(Page).AsyncPostBackSourceElementID AsyncPostBackSourceElementID
이것은 서버측 오브젝트이기 때문에, 클라이언트측을 원하기 때문에, 기능하지 않습니다.
ClientSide.올바른 콘텐츠를 업데이트하려면 Net Framework가 업데이트 중인 UpdatePanel을 알아야 합니다.확실히 이 이벤트에 참여할 수 있는 방법이 있을까요?
어떤 도움이라도 주시면 감사하겠습니다.
감사합니다. 둘 다 좋은 답변입니다.저는 결국 클라이언트 측 스크립트 "page loaded"로 진행했습니다.그것은 구글이 나에게 밝히지 않은 꽤 숨겨진 방법이다.이 코드는 FireBug와 연계하여 업데이트된 패널을 찾기 위한 PageLoaded 메서드의 데모를 제공합니다.
<script type="text/javascript">
$(document).ready(function() {
panelsLoaded = 1;
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(PageLoaded)
});
function PageLoaded(sender, args) {
console.log("I have occured " + panelsLoaded++ + " times!");
var panelsCreated = args.get_panelsCreated();
for (var i = 0; i < panelsCreated.length; i++) {
console.log("Panels Updating: " + panelsCreated[i].id);
}
var panelsUpdated = args.get_panelsUpdated();
for (var i = 0; i < panelsUpdated.length; i++) {
console.log("Panels Updating: " + panelsUpdated[i].id);
}
}
</script>
PageRequestManager를 후크할 수 있습니다.beginRequest 이벤트 및 BeginRequestEventArgs.postBackElement 속성을 검사합니다.
실제로는 UpdatePanel이 아니라 UpdatePanel 내부의 컨트롤이 제공됩니다.그래도 충분할 거야
편집: PageRequestManager.pageLoaded 이벤트는 PageLoadedEventArgs.panelsUpdated(및 panelsCreated) 속성을 제공합니다.
이것이 해결책일 수 있습니다.
UpdatePanel의 OnLoad 이벤트 뒤에 있는 코드에서 시작 스크립트를 등록합니다.
string scriptText = "alert('Bar!');";
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "foo", scriptText, true);
언급URL : https://stackoverflow.com/questions/338702/how-to-call-a-client-side-javascript-function-after-a-specific-updatepanel-has-b
'programing' 카테고리의 다른 글
동적 키를 사용하여 PHP 개체를 루프하는 방법 (0) | 2023.03.08 |
---|---|
HTML5 유효성 검사 시 빈 머리글 경고 (0) | 2023.03.08 |
스프링 구성 XML 스키마: 버전 유무 (0) | 2023.03.08 |
대규모 데이터 세트에 여러 필터가 있는 ng-multiple (0) | 2023.03.08 |
워드프레스: (0) | 2023.03.08 |