Question

Il semble que dans certains cas, si vous vous retrouvez avec des modalPopups imbriqués entourés de updatePanels (pas idéal, je sais, et devrait probablement être refactorisé, mais c'est ce que nous travaillons à cause de la façon dont certains des contrôles utilisateur que nous voulions à réutiliser ont été écrits), lorsque vous déclenchez une publication qui devrait ouvrir le modalPopup imbriqué, au lieu de cela ferme celle du parent. Par souci d'argumentation, si je définis un point d'arrêt et que je lance

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

juste avant l'appel de la méthode Show () de l'enfant modalPopup, cela fonctionne comme prévu à l'origine. Il me semble que, parce que updatePanels est imbriqué, il peut renvoyer son parent, le modalPopup parent "ne sait pas". il est supposé afficher et recharger la visibilité de son panneau comme étant fausse. Etant donné que l'enfant modalPopup est ensuite imbriqué dans un panneau parent dont la visibilité est false, l'appel de Show () sur lui n'a aucun effet non plus. Ainsi, au lieu d’ouvrir un autre modalPopup, celui-ci se ferme. Ce n'est pas une erreur, mais un comportement auquel nous ne nous attendions pas. Il était donc difficile de localiser sans exception, mais je pense que l'explication ci-dessus est logique ... Si j'ai mal compris le problème, veuillez le préciser. et m'éclairer, parce que cela ne semble pas se produire tout le temps, je pense que cela arriverait!
À ce stade, dans cette situation particulière, nous sommes en train de réécrire certaines de ces commandes pour ne pas aboutir à des UpdatePanels imbriqués, ce qui ne se produit donc pas, mais je suis curieux:
Quelqu'un at-il déjà rencontré ce problème auparavant et avez-vous mis au point une solution astucieuse qui n'implique pas un appel à FindControl () pour afficher à nouveau () le modalPopup en question?

Était-ce utile?

La solution

J'ai résolu ce problème!
Si vous modifiez le paramètre UpdateMode de UpdatePanel en "Conditionnel", le parent UpdatePanel ne publie pas de retour lorsque l'enfant UpdatePanel publie, puis les imbriquer ne pose aucun problème!
Je ne suis pas sûr de savoir pourquoi UpdateMode = " Toujours " est la valeur par défaut, mais, leçon apprise.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top