mercredi 21 janvier 2009

Executer le code d'un Bouton en pressant la touche Entrer

Petit exemple simple:

<div id="divTest" runat="server">
<
asp:TextBox ID="txtTest" runat="server"></asp:TextBox>
<
asp:Button ID="cmdGo" runat="server" Text="Go" OnClick="cmdGo_Click" />
</
div>

code du boutton: renvoie le texte tapé par l'utilisateur:

protected void cmdGo_Click(object sender, EventArgs e)
{
Response.Write(txtTest.Text);
}

Pour exécuter le code du bouton en pressant entrer, j'ai utilisé un Div à qui j'ai ajouté un id dans la page aspx. Dans Page_Load, ajouter un attribut à ce div: sur l'evenement onkeydown verifier le code de la touche pressée et lancer l'evenement click du boutton s'il s'agit de la touche entrer dont le code est 13 :

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
this.divTest.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which==13) || (event.keyCode==13)) {document.getElementById('" + cmdGo.UniqueID + "').click();return false;}} else {return true};");

}


Resultat :

image



Le div peut etre replacé par un table aussi. Il est preferable que le div ou table soit dans le niveau le plus haut possible de la page afin que son contenu "reconnaisse" que le boutton est lancé lorsque la touche Entrer est préssée.

Aucun commentaire: