Pergunta

Parece que em alguns casos, se você acabar com modalPopups aninhados envolvidas com UpdatePanels (não I Know ideal, e provavelmente deve ser reformulado, mas isso é o que estamos trabalhando com causa de como alguns dos controles de usuário que queríamos a reutilização foram escritos), quando você disparar um postback que deve abrir o ModalPopup aninhada, em vez disso, fecha a um dos pais. Por uma questão de argumento, se eu definir um ponto de interrupção e executar

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

direito antes de o método do ModalPopup criança Show () é chamado, ele funciona como esperávamos originalmente. Parece-me que, porque quando UpdatePanels são aninhados, eles podem enviar de volta seus pais, o ModalPopup pai "não sabe" que é suposto estar mostrando e recarrega visibilidade do seu painel a partir do zero como falsa. Porque a criança ModalPopup é então encaixados dentro de um painel pai cuja visibilidade é falsa, chamando Show () sobre ele não tem nenhum efeito qualquer um. Então, ao invés de começar outra ModalPopup aberta, o fechamento do atual. Este não é um erro, o comportamento simplesmente não esperávamos, por isso era difícil de rastrear sem exceção lançada em qualquer lugar, mas eu acho que a explicação acima faz sentido ... Se eu entendi o problema incorretamente, por favor, esclareça-lo e me ilumine, porque isso não parece acontecer o tempo todo eu acho que seria!
Neste ponto para esta situação particular que está preso alguns desses controles para não acabar com UpdatePanels aninhados para que isso não aconteça, mas estou curioso-escrevendo re:
Tem alguém executar para esse problema antes, e se você chegar a qualquer solução alternativa inteligente que não envolve uma chamada para FindControl () para re-Show () o ModalPopup em questão?

Foi útil?

Solução

Eu ter resolvido este problema!
Se você alterar UpdateMode do UpdatePanel para "Condicional", o pai UpdatePanel não volta post, quando os postos UpdatePanel criança de volta e, em seguida, aninhando-os há nenhum problema em tudo!
Eu não sei por que UpdateMode = "Sempre" é o padrão, mas, lição aprendida.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top