MultiView et ModalPopupExtender

cs_Zoizoi Messages postés 29 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 13 juillet 2009 - 2 janv. 2008 à 12:44
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 2 janv. 2008 à 21:38
Bonjour et tout d'abord bonne et heureuse année à vous tous !

J'ai une question concernant les MultiView et les ModalPopupExtender.
Mon site gère des messages d'erreurs que je voudrais afficher à la fin du chargement de ma page (si il y a une erreur).
Pour ça, j'ai mis un multiview sur ma page et j'ai mit ce code dans le prerender :
if (aContext.InfoMessage != "")
    {
      mv_Popup.Visible = true;
      mv_Popup.ActiveViewIndex = 0;
      lbl_Message.Text = aContext.InfoMessage;
      lbl_PopupTitle.Text = "Information";
    }

J'ai également fait une méthode dans le EndRequest qui m'affiche la popup avec du genre :
if ($('lbl_Message').innerHTML != '')
    $find('mpe_Popup').show();

Mon problème c'est que si je vois le source généré de ma page, je ne vois même pas le contenu de ma vue.
J'en déduis que le mv_Popup.Visible = True ne peut se faire dans le prerender.

Mais alors dans mon cas, je ne sais pas encore si je dois afficher un message dans le Page_Load.
Le test doit s'effectuer après le traitement demandé par l'utilisateur.

Idéalement, je souhaiterais en plus mettre tout ce traitement dans ma page Master (histoire de décharger tout ça de mes pages filles).

Y a-t-il une solution ?
J'ai essayé avec le composant PostBackControl de Cyril, mais dans mon cas il ne s'agit que d'un traitement pur serveur, donc pas d'intéraction avec l'utilisateur pour déclencher le popup.

Merci !

1 réponse

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
2 janv. 2008 à 21:38
Bonsoir,

"Mon problème c'est que si je vois le source généré de ma page," Si tu regardes après un AsyncPostBack (updatepanel) c'est normal tu verras la source original ! et non la source après rafraichissement.

Tu peux parfaitement changer la visibilité d'un controle dans le prerender.

Je n'ai pas tout compris ce que tu essayes de faire, mais tu peux surement utiliser la propriété AsyncPostBackErrorMessage du ScriptManager que tu récuperes coté client dans le EndRequest http://msdn2.microsoft.com/en-us/library/system.web.ui.scriptmanager.asyncpostbackerrormessage.aspx

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
Rejoignez-nous