/ / ASP.NET AJAX zagnieżdżony updatePanel modalPopup funkiness - asp.net-ajax, modalpopupextender

ASP.NET AJAX zagnieżdżone updatePanel modalPopup funkiness - asp.net-ajax, modalpopupextender

Wygląda na to, że w niektórych przypadkach, jeśli się na tym skończyćzagnieżdżone modalPopups owinięte przez updatePanels (nie idealne, co wiem i prawdopodobnie powinno być refaktoryzowane, ale to jest to, z czym pracujemy, ze względu na sposób, w jaki niektóre z kontrolek użytkownika, które chcieliśmy ponownie wykorzystać) zostały napisane), kiedy uruchamiasz odświeżenie które powinno otworzyć zagnieżdżone modalPopup, zamiast tego zamyka rodzica. Ze względu na argument, jeśli ustawię punkt przerwania i uruchomię

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

tuż przed metodą modalPopup "show ()"nazywa się, działa tak, jak początkowo oczekiwaliśmy. Wydaje mi się, że ponieważ gdy updatePanels są zagnieżdżone, mogą odesłać swojego rodzica, rodzic modalPopup "nie wie, że" powinien pokazać i przeładować widoczność swojego panelu od zera jako fałszywego. modalPopup jest następnie zagnieżdżony w panelu nadrzędnym, którego widoczność jest nieprawidłowa, wywołanie Show () na nim również nie ma żadnego efektu, więc zamiast otwierać kolejne modalPopup, bieżący zamyka się.To nie jest błąd, tylko zachowanie, którego nie oczekiwaliśmy , więc trudno było wyśledzić bez żadnego wyjątku nigdzie, ale myślę, że powyższe wyjaśnienie ma sens ... Jeśli "zrozumiałem problem w niewłaściwy sposób, proszę wyjaśnij go i oświeć mnie, ponieważ nie wydaje się, że to wszystko czas, który, jak sądzę, będzie!
W tym momencie dla tej konkretnej sytuacji utknęliśmy w przepisywaniu niektórych z tych kontrolek tak, aby nie kończyły się zagnieżdżonymi updatePanelami, więc to się nie dzieje, ale jestem ciekawy:
Czy ktoś wcześniej napotkał ten problem i czy wymyślił jakieś sprytne obejście, które nie wymaga wywołania FindControl (), aby ponownie pokazać () modalPopup w pytaniu?

Odpowiedzi:

3 dla odpowiedzi № 1

Rozwiązałem ten problem!
Jeśli zmienisz UpdatePanel "UpdateMode" na "Warunkowo", to macierzysty UpdatePanel nie będzie odsyłać z powrotem, gdy dziecko UpdatePanel odpisze, a następnie zagnieżdżanie ich nie będzie miało żadnego problemu!
Nie jestem pewien, dlaczego UpdateMode = "Always" jest domyślną, ale lekcją.