FAQ ASP.NET/C#
FAQ ASP.NET/C#Consultez toutes les FAQ
Nombre d'auteurs : 39, nombre de questions : 371, dernière mise à jour : 15 juin 2021
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 :
<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 :
javascript
:
return WebForm_FireDefaultButton
(
event
,
'b2'
)
ou dans l'attribut onkeypress de la balise form.