FAQ ASP.NET/C#Consultez toutes les FAQ

Nombre d'auteurs : 39, nombre de questions : 371, dernière mise à jour : 22 septembre 2007 

 
OuvrirSommaireWebFormsContrôlesContrôles serveur (WebControl)Contrôles standardsButton

Par défaut, le contrôle Form disposé sur une page ASP.NET considère le premier contrôle de type bouton qu'elle trouve dans la page comme le bouton par défaut.
Si on appuie sur le bouton "Entrée", alors ASP.NET considère que c'est ce bouton qui a déclenché le postback.

On peut lui indiquer un autre bouton grâce à la propriété DefaultButton, que ce soit sur le contrôle Form ou sur un Panel.
Ainsi, il devient très facile d'indiquer quel événement click de bouton doit être appelé lors de l'appui sur la touche "Entrée".

Considérons cet exemple :

 
Sélectionnez
 
<form id="form1" runat="server" defaultbutton="b5">
<div>
	<asp:TextBox runat="server" ID="t1" />
	<asp:Button runat="server" ID="b1" OnClick="b1_click" Text="go" />
</div>
<asp:Panel runat="server" ID="p1" DefaultButton="b2">
	<asp:TextBox runat="server" ID="t2" />
	<asp:Button runat="server" ID="b2" OnClick="b2_click" Text="go"/>
</asp:Panel>
<asp:Panel runat="server" ID="p2" DefaultButton="b4">
	<asp:TextBox runat="server" ID="t3" />
	<asp:Button runat="server" ID="b3" OnClick="b3_click" Text="go"/>
	<asp:TextBox runat="server" ID="t4" />
	<asp:Button runat="server" ID="b4" OnClick="b4_click" Text="go"/>
</asp:Panel>
<asp:TextBox runat="server" ID="t5" />
<asp:Button runat="server" ID="b5" OnClick="b5_click" Text="go"/>
</form>

Grâce aux propriétés defaultbutton, on aura :

  • lors du focus sur le textbox t2, le bouton b2 sera clické
  • lors du focus sur le textbox t3 ou t4, le bouton b4 sera clické
  • Dans tous les autres cas, c'est le bouton b5 qui sera clické

Techniquement, ASP.NET rajoute le javascript suivant au div conteneur représentant le panel :

 
Sélectionnez
 
javascript:return WebForm_FireDefaultButton(event, 'b2')

ou dans l'attribut onkeypress de la balise form.

Créé le 20 septembre 2009  par nico-pyright(c)
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Dotnet Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.