문제

경우에 따라 업데이트 패널로 싸인 중첩 된 모달 포 업으로 끝나면 (이상적이지 않으며, 아마도 리팩토링되어야하지만 아마도 우리가 다시 작업하고자하는 사용자 제어 방식 때문에 우리가 함께 작업하는 것입니다. 사용이 작성되었습니다)), 중첩 된 modalpopup을 열어야하는 포스트 백을 발사 할 때, 대신 부모를 닫습니다. 논쟁을 위해, 내가 중단 점을 설정하고 실행하면

((ModalPopupExtender)this.Parent.Parent.FindControl("modalPopupExtender'sID").Show();

Child ModalpoPup의 Show () 메소드가 호수 직전에, 원래 예상대로 작동합니다. UpdatePanels가 중첩 될 때 부모를 다시 게시 할 수 있기 때문에 부모 ModalPopup은 "알지 못한다"는 "모르겠다"는 부모의 가시성을 처음부터 거짓으로 다시로드해야합니다. 어린이 modalpopup은 가시성이 허위 인 상위 패널 내부에 중첩되기 때문에 Show () 호출도 영향을 미치지 않습니다. 따라서 다른 modalpopup을 열지 않고 현재는 닫힙니다. 이것은 오류가 아니라 우리가 기대하지 않은 행동만으로 예외로 추적하기가 어려웠지만 위의 설명은 의미가 있다고 생각합니다 ... 문제를 잘못 이해하면 명확히하십시오. 그리고 나를 깨달으십시오. 왜냐하면 이것은 내가 생각할 때 항상 일어나지 않는 것 같기 때문입니다!
이 시점 에서이 특정 상황에서 우리는 해당 컨트롤 중 일부를 다시 작성하여 중첩 된 업데이트 패널로 끝나지 않도록 이런 일이 일어나지 않지만 궁금합니다.
이 문제를 해결 한 사람이 있습니까? FindControl ()에게 전화를 걸어 ()에게 해당 ModalPopup ()에 대한 호출을 요청하지 않는 영리한 작업을 생각해 냈습니까?

도움이 되었습니까?

해결책

나는이 문제를 해결했다!
UpdatePanel의 UpdateMode를 "조건부"로 변경하면 Child UpdatePanel이 게시 할 때 부모 업데이트 패널이 다시 게시되지 않으면 전혀 문제가되지 않습니다!
updateMode = "Always"가 기본값인지 확실하지 않지만, 수업은 배웠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top