AjaxControlToolKit - ModalPopupExtender dans un ascx

Résolu
Signaler
Messages postés
27
Date d'inscription
mercredi 30 mars 2005
Statut
Membre
Dernière intervention
7 août 2007
-
Messages postés
3
Date d'inscription
jeudi 15 avril 2004
Statut
Membre
Dernière intervention
30 octobre 2009
-
Bonjour,

J'ai un problème dont je n'arrive pas à trouver de réference sur le Web...

J'ai un ModalPopup AJAX dans un UserControl (ascx) qui est lui meme dans un UpdatePanel de la page principale, mais lors de l'execution, le popup ne s'ouvre pas, il n'est pas retrouvé dans la page ...
En regardant le code source généré, j'ai remarqué que le script créant le popup en JS :
    Sys.Application.initialize();
    Sys.Application.add_init(function() { $create(AjaxControlToolkit.ModalPopupBehavior,  ...
n'était pas présent dans la page (généré en bas de page généralement)...

J'ai bien la balise dans l'ascx :
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

Et il est à noter que j'ouvre le popup en JS :
    popup = $find('ModalPopupType');
    popup.show();

Je ne comprend pas pourquoi le UserControl empeche de faire fonctionnait le popup ... Car a priori si je  met le popup directement dans la page parente, il fonctionne normalement...

Il semble que personne d'autres ne rencontre ce problème, alors je me demande si ce n'est pas ma page qui est particulière... Si quelqu'un a rencontré ce probleme, merci de me renseigner !

Et si quelqu'un à un exemple de ModalPopup Ajax dans un usercontrol qui fonctionne sans écrire de code dans la page parente, ça m'interesse fortement !

Merci d'avance !

4 réponses

Messages postés
219
Date d'inscription
jeudi 6 juillet 2006
Statut
Membre
Dernière intervention
7 septembre 2009

Ce doit être un problème d'ID que le ModalPopup ne gère pas : Ton controle étant dans un UserControl, son id sera transformé et concaténé avec l'ID de ton UserControl sur ta form.... ce doit être ici que ca ne marche pas... quant à la solution, je ne sais pas, sauf ne pas mettre le controle dans un UserControl ou allez voir du coté de la source de ModalPopup et modifier ce dernier pour ton utilisation.... Mais je me trompe p-e quant à la source de ton pb.
Messages postés
27
Date d'inscription
mercredi 30 mars 2005
Statut
Membre
Dernière intervention
7 août 2007

Merci ! C'était bien ça ... il renomme l'ID donnée au ModalPopUpExtender en rajoutant l'ID de l'ascx...
Il faut donc penser à rajouter l'ID de l'ascx en prefixe (avec un '_') pour  la fonction $find

ex:    popup = $find('IDASCX_ModalPopupType');
    popup.show();

Merci Beaucoup !
A+
Messages postés
23
Date d'inscription
mardi 22 janvier 2002
Statut
Membre
Dernière intervention
16 novembre 2009

Utiliser le ClientID ou le UniqueID ne serait pas plus simple ?
Messages postés
3
Date d'inscription
jeudi 15 avril 2004
Statut
Membre
Dernière intervention
30 octobre 2009

Bonjour!
G presque le mm problème sauf que moi j'essai d'ouvrir mon Modalpopup coté server par une sub dans le code behind du user control! et merci