Solved

Performing button click from textbox enter in VB.NET

Posted on 2013-11-24
2
714 Views
Last Modified: 2013-11-24
Hello,

I have a login box in my application - which has a username textbox, a password textbox and a Submit button.

I want the login subroutine to fire whether the user presses the Submit button, or if the user has the focus in the password textbox and presses enter.

Initially, I had coded it as follows (had 2 different handlers - one for the button and one for the textbox - both pointing back to the same subroutine)

    Sub LoginProc(sender As Object, e As System.EventArgs)
        
        ' Login by pushing the LOGIN button
        LoadPermissions(usernameTextbox.Text, passwordTextbox.Text)

    End Sub
    
    Sub LoginProc1(ByVal Source As Object, ByVal E As EventArgs)
   
        ' Login by pushing ENTER
        LoadPermissions(usernameTextbox.Text, passwordTextbox.Text)

    End Sub
    
    Sub LoadPermissions(ByVal Username As String, ByVal Password As String)
  
      .... Do my stuff here ...

    End Sub

Open in new window


with the associated HTML:

<asp:TextBox ID="passwordTextbox" runat="server" OnTextChanged="LoginProc1" autopostback="true" Width="44" TextMode="Password" />
<asp:Button runat="server" id="loginsubmitButton1" OnClick="LoginProc" class="formbutton" />

Open in new window


Realize now that that has been crappy code and everytime I login (still don't know why) both handlers are automatically invoked and the LoadPermissions subroutine is fired twice.

How can I clean up my code to just fire LoadPermissions once with one handler that works for both pushing the button, and using the ENTER button while the textbox is in focus ?

Thanks, Peter
0
Comment
Question by:pbissegger
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 83

Accepted Solution

by:
CodeCruiser earned 500 total points
ID: 39672789
See if adding following line to your Page_Load works

Page.RegisterHiddenField("__EVENTTARGET", "btnSubmit")

http://www.hanselman.com/blog/ASPNETHowToCreateADefaultEnterButtonForFormsPostBacks.aspx


You can also add the password textbox to a panel and then set Panel.DefaultButton property

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton(v=vs.110).aspx
0
 

Author Closing Comment

by:pbissegger
ID: 39673366
Fantastic ! Works like a charm !

I already had a panel around my login, so I implemented the panel solution.

Thanks, Peter
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Send SMS from vb.net desktop app 30 46
Using sample Autorize.net c# simple example 1 52
Adjust the codes 3 62
Error in Visual Project 10 45
Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question