none
[ASP.Net] Evènement éxécuté 2 fois RRS feed

  • Question

  • Bonjour,

    Sur ma page aspx, j'ai plusieurs bouton qui font appel à des événements.
    lorsque je suis en mode debug, je vois que je passe plusieurs fois dans mon événement (placé en code Behind).
    ce qui n'est pas pratique lors de la création de fichiers qui porteront le meme nom.

    quelqu'un sait pourquoi j'ai cette erreur?

    merki
    mardi 4 décembre 2007 10:17

Réponses

  • Bonjour,

    Il se peut que vous ayez enregistré 2 fois votre méthode sur l'évènement. Dans ce cas vous passerez 2 fois dans la fonction.

    Vérifiez si vous n'avez pas un enregistrement dans le fichier auto généré et dans votre code. Pour savoir si vous avez un enregistrement dans le fichier auto généré, ouvrez votre page en mode Design, regardé les propriétés de votre bouton dans la partie "Events" (bouton en forme d'éclair) si vous avez le nom d'un méthode sur la ligne Click.

     

    Guillaume

    mardi 4 décembre 2007 11:07
  • Si vous avez mis dans votre contrôle OnClick="btnCreationOK_Click", il est normal que vous ayant dans les propriétés de votre contrôle ce nom dans la ligne Click de la partie Events. Cela indique que vous avez bien définit "btnCreationOK_Click" comme méthode à appler lors du clic.

     

    Vous devez surement l'avoir une deuxième fois.

     

    Si vous êtes en VB.Net, vérifiez que vous n'avez pas le code suivant à la suite de la déclaration de "btnCreationOK_Click" : "Handles btnCreationOK.Click". Si ce n'est pas le cas, regardez si vous avez quelque part le code "AddHandler btnCreationOK.Click, AddressOf btnCreationOK_Click"

     

    Si vous êtes en C#, regardez si vous avez le code "btnCreationOK.Click += new EventHandler(btnCreationOK_Click);"

     

    Guillaume

    mardi 4 décembre 2007 11:51
  • donc si je comprend bien j'ai "btnCreationOK.Click += new EventHandler(btnCreationOK_Click);" en trop?
    et je laisse le onClick="
    btnCreationOK_Click" dans mon aspx?
    mardi 4 décembre 2007 12:43
  • Effectivement, les 2 syntax ajoute chacune un handler donc la méthode est appelée 2 fois.

    A vous de voir la syntax que vous préférée : dans la partie ui (aspx) ou dans le code behind (cs).

     

    Guillaume

    mardi 4 décembre 2007 12:59

Toutes les réponses

  • Bonjour,

    Il se peut que vous ayez enregistré 2 fois votre méthode sur l'évènement. Dans ce cas vous passerez 2 fois dans la fonction.

    Vérifiez si vous n'avez pas un enregistrement dans le fichier auto généré et dans votre code. Pour savoir si vous avez un enregistrement dans le fichier auto généré, ouvrez votre page en mode Design, regardé les propriétés de votre bouton dans la partie "Events" (bouton en forme d'éclair) si vous avez le nom d'un méthode sur la ligne Click.

     

    Guillaume

    mardi 4 décembre 2007 11:07
  • merci ça a l'air d'etre ça Big Smile

    j'ai renseigné le onClick() de mon controle dans ma page aspx
    <asp:button id="btnCreationOK" runat="server" Font-Names="Verdana" Font-Size="8pt" Text="OK" OnClick="btnCreationOK_Click"></asp:button>

    et dans les propriétés de mon controle j'avais mis le nom dans la partie Events!

    pouvez vous me confirmer que c'est bien ça?
    merci
    mardi 4 décembre 2007 11:23
  • Si vous avez mis dans votre contrôle OnClick="btnCreationOK_Click", il est normal que vous ayant dans les propriétés de votre contrôle ce nom dans la ligne Click de la partie Events. Cela indique que vous avez bien définit "btnCreationOK_Click" comme méthode à appler lors du clic.

     

    Vous devez surement l'avoir une deuxième fois.

     

    Si vous êtes en VB.Net, vérifiez que vous n'avez pas le code suivant à la suite de la déclaration de "btnCreationOK_Click" : "Handles btnCreationOK.Click". Si ce n'est pas le cas, regardez si vous avez quelque part le code "AddHandler btnCreationOK.Click, AddressOf btnCreationOK_Click"

     

    Si vous êtes en C#, regardez si vous avez le code "btnCreationOK.Click += new EventHandler(btnCreationOK_Click);"

     

    Guillaume

    mardi 4 décembre 2007 11:51
  • donc si je comprend bien j'ai "btnCreationOK.Click += new EventHandler(btnCreationOK_Click);" en trop?
    et je laisse le onClick="
    btnCreationOK_Click" dans mon aspx?
    mardi 4 décembre 2007 12:43
  • Effectivement, les 2 syntax ajoute chacune un handler donc la méthode est appelée 2 fois.

    A vous de voir la syntax que vous préférée : dans la partie ui (aspx) ou dans le code behind (cs).

     

    Guillaume

    mardi 4 décembre 2007 12:59
  • merci Guillaume pour tes explications Big Smile
    mardi 4 décembre 2007 13:05