18 votes

Le gestionnaire du bouton HtmlButton se déclenche deux fois lorsqu'il est cliqué (lorsque AutoEventWireup="True")

J'ai un bouton html, voir ci-dessous. Lorsqu'il est cliqué et que AutoEventWireup="true", le gestionnaire de clic Save_Click est déclenché deux fois. Lorsque AutoEventWireup="False", il est déclenché une fois.

Pourquoi tire-t-il deux fois ? Le bouton n'est pas enregistré deux fois et aucun code n'ajoute le gestionnaire d'événement. Utilisation d'une page maître et pas d'Ajax.

<button id="Save" accesskey="v" type="submit" runat="server" onserverclick="Save_Click"></button>

29voto

Andriy F. Points 714

Et maintenant (au moins dans .net 4) encore mieux :

<button runat="server">

se comporte par défaut comme s'il avait un type="submit" (se déclenche deux fois au clic), donc pour qu'il fonctionne correctement, nous devons explicitement définir le type="button", c'est-à-dire :

<button id="ButtonSubscribe2" runat="server" type="button" onserverclick="Save_Click"></button>

15voto

Tony_Henrich Points 7203

J'ai découvert qu'un HTMLButton se déclenche pour l'événement onserverclick et pour le type="submit". Lorsque je supprime le type="submit", il ne se déclenche qu'une seule fois. Ce comportement bizarre m'a pris beaucoup de temps à découvrir !

-1voto

DA. Points 15714

Juste une supposition : le gestionnaire n'est pas déclenché deux fois, mais vous avez mis en place un comportement similaire dans l'événement Page_Load qui donne l'impression qu'il est déclenché deux fois.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X