IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Les events de mon UserControl ne marche pas


Sujet :

ASP.NET

  1. #1
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut Les events de mon UserControl ne marche pas
    Bonjour à tous,

    Voilà je vous expose mon problème:

    J'ai ma page principale dans laquelle lors d'un clique sur un LinkButton, j'ouvre une ModalPopup dans lequel je charge dynamiquement un userControl.

    Dans ce UserControl j'ai un Bouton, pour lequel j'ai affecté son évènement OnClick à une procédure dans le code behind du user control (ascx.cs).

    Mais lorsque je fais un debug avec un breakpoint sur cette procédure de _OnClick et que je clique sur ce bouton, je ne passe dedans...

    Je ne comprends vraiment pas, si vous avez des idées, je suis preneur

  2. #2
    Membre habitué Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Points : 175
    Points
    175
    Par défaut
    Tu peux faire voir ton code ? C'est zarbe ça...

  3. #3
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    Bonjour Ishizaki,

    Voici mon code.

    dans ma page principal .aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    public MyUC         _ucStatut;
     
    protected void Page_Load(object sender, EventArgs e)
        {
     
            _ucStatut       = (MyUC)     LoadControl("MyUC.ascx");
     
        }    
     
       /*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      *  lbtnStatut_Click  
      *  Méthode qui lors du click sur le lien "Statut" de l'HoverMenu passe l'ID de la ligne concernée au UserControl
         * correspondant et charge dynamiquement ce dernier dans le panel du ModalPopup correspondant.
     
      * -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
        protected void lbtnStatut_Click(object sender, System.EventArgs e)
        {
            // Récupère la ligne selectionnée du GridView depuis "sender"
            LinkButton lbtnStatut = sender as LinkButton;
            GridViewRow row = (GridViewRow)lbtnStatut.NamingContainer;
     
            // passe à la propriété iID du userControl le dataKey (ici: id) de la ligne sélectionnée
            this._MyUC.iHawId = Int32.Parse(gvResultat.DataKeys[row.RowIndex].Value.ToString());
     
            // ajoute au Panel de la ModalPopup correspondante le userControl
            this.pnlStatut.Controls.Add(_MyUC);
     
            // affiche la modalPopup
            this.mpeStatut.Show();        
        }
    Voilà comment j'affiche mon UserControl, et dans ce dernier j'ai juste, pour mes tests, placer un Button dans ma page ascx, et double cliquer dessus pour générer la méthode OnClick, dedans je n'ai rien pour le moment, j'ai juste placer un breakpoint pour vérifier en mode debug si je passe dedans, or non...

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    l'evenement n'est peut etre pas lié au bouton. vérifies ceci sait on jamais.

  5. #5
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    Si si il l'est, et je pense que ça vient du fait que mon UserControl soit dans une ModalPopup, car quand je charge dynamiquement mon UC directemnt dans un panel de ma page principale sans passer par un modal popup, mon bouton marche sans soucis!
    Mais bon j'ai besoin que ce soit dans une modalPopup...

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    il manque peut etre un updatepanel quelquepart?

  7. #7
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    Ben j'en ai un dans ma page principal et un autre dans mon usercontrol

  8. #8
    Membre habitué Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Points : 175
    Points
    175
    Par défaut
    Ah, tu as lié ton évènement click à l'updatePanel de ton uc ?

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    essaye d'enlever l'updatepanel que tu as dans ton usercontrol.

  10. #10
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    rattlehead>>j'ai essayé d'enlever l'update panel de mon UC: meme probleme...

    Ishizaki>> comment fais tu pour lier l'evenement onClick à l'UpdatePanel???

  11. #11
    Membre habitué Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Points : 175
    Points
    175
    Par défaut
    Tu peux le faire de 2 façons :

    Dans ton ascx, tu lies tes events à l'updatePanel avec des Triggers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <asp:UpdatePanel runat="server" ID="UpdatePanel1">
    <triggers>
    <asp:AsyncPostBackTrigger ControlID="L_IDdetoncontrole" EventName="Click" />
    </triggers>
    <contenttemplate>
    </contenttemplate>
    </asp:UpdatePanel>
    EventName correspond à l'évènement sur lequel tu veux que ton updatePanel se rafraichisse, ici, ce sera sur le Click de ton bouton.

    Sinon, en code behind, dans le onInit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
    trigger.ControlID= this.Bouton.UniqueID;
    trigger.EventName = "Click";
    this.UpdatePanel1.Triggers.Add(trigger);

  12. #12
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    Merci Ishizaki, j'ai fais la 1° méthode mais j'ai l'erreur suivante lorsque j'execute:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A control with ID 'Button1' could not be found for the trigger in UpdatePanel 'UpdatePanel1'
    alors que j'ai fais comme tu m'as dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Button1_Click" />
    </Triggers>
    <ContentTemplate>
     
     
     
     
    <div id="divTitre" align="center" style="height:50px;">
    <asp:Label runat="server" ID="lblTemp" Text="id"/>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>
    <asp:Label runat="server" ID="lblStatutActuel" Text="Statut actuel :" />
    </div>
     
     
    </ContentTemplate>
    </asp:UpdatePanel>

  13. #13
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    Bon finalement j'ai fais la 2nd méthode pour le trigger en le mettant directement le OnLoad du code behind, et ya plus d'erreur, mais mon event de clik ne marche toujours pas....

  14. #14
    Membre habitué Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Points : 175
    Points
    175
    Par défaut
    Waw, c'est quand même énorme...

    Tous les ID sont bien fixés sur ton UserControl ? t'as pas des ID en double qui trainent quelque part ? regarde sur le source html généré sur ta page.

  15. #15
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    Non il n'y a pas l'air d'avoir d'id en double, dans mon code html mon bouton ressemble à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="ctl00_PlaceHolderMain_ctl01_Button1" type="submit" value="Button" name="ctl00$PlaceHolderMain$ctl01$Button1"/>

  16. #16
    Membre habitué Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Points : 175
    Points
    175
    Par défaut
    Je pensais soit à un problème d'updatePanel, soit à un problème d'ID, mais là...

    Suis largued...

    Ton bouton qui ouvre ce ModalPopUp se trouve-t'il dans un UpdatePanel ?

  17. #17
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    Oui le bouton qui l'ouvre est dans un UpdatePanel, en fait c'est un LinkButton qui se trouve dans un hoverMenu pour chaque ligne de ma GridView.

    Mais le probleme vient en fait de la modalPopup, car j'ai l'impression qu'il bloque n'importe quel postBack, car quand je met mon UserControl directement dans ma page aspx, sans passer par la ModalPopup, tous les boutons de mon UserControl marche sans porbleme...

  18. #18
    Membre habitué Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Points : 175
    Points
    175
    Par défaut
    Tu peux pas faire sans dans ce cas et ouvrir une pop up js ?

  19. #19
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    Non je ne peux pas malheureusement, contrainte des specs...

    Mais je vais essayer d'executer toutes mes méthodes d'evenements côté client, car par contre il execute bien les fonctions javaScript... Ca va être bien contraignant, mais bon c'est le seul moyen pour le moment que j'ai trouvé...

  20. #20
    Membre habitué Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Points : 175
    Points
    175
    Par défaut
    Ah flute, c'est un peu chiantos si tu ne peux même pas utiliser du js...

Discussions similaires

  1. Réponses: 11
    Dernier message: 24/01/2013, 09h00
  2. [CSS] Une partie de mon CSS ne marche pas sous IE
    Par YanK dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 28/10/2005, 17h58
  3. mon select count(*) marche pas
    Par zorba49 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 05/08/2005, 08h28
  4. Tcsh - Mon script ne marche pas
    Par Aramis dans le forum Linux
    Réponses: 5
    Dernier message: 13/05/2004, 18h26
  5. [IB71] mon Blob ne marche pas correctement
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 2
    Dernier message: 17/09/2003, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo