tags:

views:

527

answers:

6

I have an asp.net ascx control file and I have put the control on an aspx page. The aspx page has a button in which when I press enter on the keyboard, I want it to fire the event handler for the button. Is there a way to set this?

I am using a master page with a button already on it, so now when I press the enter key, the event handler for that button fires.

+1  A: 

Try this:

<form id="form1" runat="server" defaultbutton="myButton">
HectorMac
+2  A: 

This is subtle in IE. You'll need to add a textbox to your control, set the display to none, and visibility to hidden which shouldn't affect the appearance of your control since this textbox will be hidden, the enter should work correctly, this is an IE issue

Edit: Ignore this if you use .NET 2.0 which introduced defaultButton

RandomNoob
+1  A: 

Page.Form.DefaultButton - msdn link here

Sergiu Damian
+4  A: 

DefaultButton also works in panels, so you can set a default button in each panel and have the Enter key click the button in whichever panel currently has focus.

Sisiutl
I've used this in numerous projects and it works great! It also allows you to have multiple "submit" buttons on your page and wrap them in the appropriate context panels to have the proper action occur when enter is pressed.
Dillie-O
A: 

Just a small note: You cannot use the 'defaultButton' attribute if your button is a LinkButton, it doesn't work for that, taken from here: http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlform.defaultbutton.aspx

khebbie
A: 

Hi All,

There is no need to use panels (Overhead) if you are already using <form> in masterpage.

Please find a helpful article to solve this in proper manner

Set the default button for aspx page w/o panels

Gud luck

awais