ASP.NET 2.0 - Enter Key - Default Submit Button - preCharge Forums
It shows that you are unregistered. Please register with us by clicking Here
preCharge Forums


Nav Green LeftNav Right
preCharge Forums > Website Design & Development > Programming > .NET » ASP.NET 2.0 - Enter Key - Default Submit Button


Reply
Tcat Right
 
LinkBack Thread Tools Display Modes Tcat Right
Old 07-06-2006   #1 (permalink)
preston
Junior Member
 
Join Date: Jul 2006
Age: 43
Posts: 3
Default ASP.NET 2.0 - Enter Key - Default Submit Button

Hi,
One of the most annoying things in developing web pages is handling the "Enter key" for form submission. Enter key has been the favourite way users like to submit forms. Though we provide Buttons to click on, the easiest and intuitive way is that, I can enter some text, make some changes and then hit "Enter" to accomplish my submission.

"Enter" Key is handled in a little tricky way by uplevel browsers like Internet Explorer, when it comes to ASP.NET.
o If there is a single Textbox and single button, then it becomes straight forward, the button is submitted. However, the event code doesnt get executed, though the page postsback.
o If there are two or more, buttons, then it takes up the first button as the default button. However, it still doesnt execute the event handler but just refreshes the page.
You can supress the Enter key event using Javascript. But this would result in other undesirable effects like, any Enter key in the form i.e. within Text Area or basically where large text is entered, would be disabled.
The earlier work around was to associate a javascript function to each Button to verify the that the relevant button is submitted upon Enter key.
ASP.NET 2.0 introduces a wonderful work around for this. By simply specifying the "defaultbutton" property to the ID of the <asp:Button>, whose event you want to fire, your job is done.
The defaultbutton property can be specified at the Form level in the form tag as well as at panel level in the <aspanel> definition tag. The form level setting is overridden when specified at the panel level, for those controls that are inside the panel.
Also, the Event Handler for the specified button, fires thereby simulating a true submit button functionality.
The following sample code contains a form and 4 panels with each of them containing different buttons. It can be noticed that for each panel, there is a default button specified which would trigger the corresponding button's event handler when "Enter" Key is pressed upon a text changed event.


<form id="form1" runat="server" defaultbutton="btn1">
<div>
<asp:TextBox ID="txt" runat="server"></asp:TextBox>
<asp:Button ID="Button5" runat="server" Text="Cancel" OnClick="Button5_Click" />
<asp:Button ID="btn1" runat="server" Text="Submit" OnClick="btn1_Click" />
<asp:Panel ID="pnl1" runat="server" defaultbutton="Button1">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button1" OnClick="Button1_Click" />
</asp:Panel>
<asp:Panel ID="Panel1" runat="server" defaultbutton="Button2">
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
<asp:Button ID="Button2" runat="server" Text="Button2" OnClick="Button2_Click" />
</asp:Panel>

<asp:Panel ID="Panel2" runat="server" defaultbutton="Button3">

<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
<asp:Button ID="Button3" runat="server" Text="Button3" OnClick="Button3_Click" />
</asp:Panel>
<asp:Panel ID="Panel3" runat="server" defaultbutton="Button4">
<asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
<asp:Button ID="Button4" runat="server" Text="Button4" OnClick="Button4_Click" />
</asp:Panel>
</div>
</form>
The corresponding, sample events for the button clicks are

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

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

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

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

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

protected void Button5_Click(object sender, EventArgs e)
{
Response.Write(Button5.Text);
}
Once we execute the above functionality, we can notice, the corresponding Buttons' text are displayed when the Enter key is pressed from within a panel and at the form level, it fires the btn1 Button's event.
Thanks.
Preston
preston is offline   Reply With Quote


Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Before you submit kconnections All Other SE's & Directories 0 08-02-2006 09:33 AM
How do you submit? meerkat All Other SE's & Directories 4 08-01-2006 09:13 PM
Latest Default Sig mishka Graphics & Multimedia 2 10-26-2005 09:15 AM


footer left
All times are GMT. The time now is 05:17 PM.

DISCLAIMER: preCharge Risk Management is not responsible for any opinions, advice or comments expressed on the preCharge Community Forums.
preCharge® is a registered trademark of preCharge Risk Management | chargeback protection | Merchant Account Blog

Powered by vBulletin
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0 RC6

Photo Gallery | Gardening | Western Union Money Transfer | Vegas Hotel | Gardening

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49