We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Strange ASP.NET Submit Button Behavior

jumpseatnews
jumpseatnews asked
on
Medium Priority
420 Views
Last Modified: 2009-12-16
Hi Experts,

I'm having a lot of trouble with this one.

A simple textbox control and a button control.  If a visitor types a number into the textbox, and then clicks the 'submit' button with the mouse, the onclick event runs a subroutine that does a membership check.  All is well.

However, if the person simply types their member number into the text box and presses ENTER, the page appears to post back but no data is processed.

Any idea what is going on?  This is driving me NUTS!!

Here's the complete code.  Any help would be appreciated.

<%@ Page Language="VB" EnableViewState="false" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Register Assembly="PeterBlum.VAM" Namespace="PeterBlum.VAM" TagPrefix="VAM" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<script runat="server">
   
    Protected Sub btnCheckAccount_Click(ByVal sender As Object, ByVal e As System.EventArgs)

        Dim MyConnection As SqlConnection
        Dim MyCommand As SqlCommand
        Dim MyReader As SqlDataReader
        Dim IDParam As SqlParameter
        Dim CheckIfActive As Boolean
        Dim CheckEmailAddress As String
        MyConnection = New SqlConnection(ConfigurationManager.AppSettings("MM_CONNECTION_STRING_APDTMain"))
        MyCommand = New SqlCommand()
        MyCommand.CommandText = "SELECT * from vw_MemberStatusCheck WHERE Account = @ID"
        MyCommand.CommandType = CommandType.Text
        MyCommand.Connection = MyConnection
        IDParam = New SqlParameter()
        IDParam.ParameterName = "@ID"
        IDParam.Value = txtAccount.Text
        MyCommand.Parameters.Add(IDParam)
        MyCommand.Connection.Open()
        MyReader = MyCommand.ExecuteReader(CommandBehavior.CloseConnection)
        pnlNoRecords.Visible = True
        pnlActive.Visible = False
        pnlExpired.Visible = False
        While MyReader.Read
            txtDateExpire.Text = MyReader("DateExpire").ToString()
            txtFirstName.Text = MyReader("FirstName")
            txtFirstNameActive.Text = MyReader("FirstName")
            txtMemberType.Text = MyReader("MemberType")
            cbxActive.Checked = MyReader("Active")
            txtAccount.Text = MyReader("Account")
            CheckIfActive = MyReader("InitialSuccessPmt")
            CheckEmailAddress = MyReader("Email")
            If cbxActive.Checked = True Then
                pnlActive.Visible = True
                pnlExpired.Visible = False
                pnlNoRecords.Visible = False
            Else

            End If
            If cbxActive.Checked = False Then
                pnlExpired.Visible = True
                pnlActive.Visible = False
                pnlNoRecords.Visible = False
            Else
            End If
            If CheckIfActive = True Then
                pnlNotYetActive.Visible = True
                pnlSendEmail.Visible = True
                pnlExpired.Visible = False
                pnlActive.Visible = False
                pnlNoRecords.Visible = False
            End If
        End While
        MyCommand.Dispose()
        MyConnection.Dispose()
    End Sub
</script><title>Forgot Your Password?</title>
<!--#include virtual="/assets/inc/cmn/headcnt.inc" -->
<style type="text/css" media="all">
table.tablelistnb td.lbl{padding-right:0;}
table.tablelistnb{margin-bottom:-5px;margin-top:7px;margin-left:3px;}
#btnLogin{font-size:115%;font-weight:bold;}
input.errorbackground{background:#FFF9E1;}
#bkground{padding-bottom:7px;margin-top:10px;margin-bottom:10px;border:1px solid #ccc;background:#F7F7FA;width:350px;}
</style>
<script type="text/JavaScript" src="/assets/js/popup.js"></script>
</head>
<body id="twocol">
<h1 Membership Status</h1>
<p>Enter your Member Number in the box below to check your APDT Membership status.</p>
<form id="frmLogin" style="margin-bottom: 0.5em" runat="server">
<table border="0" cellpadding="0" cellspacing="0" class="tablelistnb">
<tr>
<td nowrap="nowrap" class="lbl" style="text-align:right"><label for="txtUsername">APDT Member #</label></td>
<td width="100%"><asp:TextBox ID="txtAccount" runat="server" Size="6" MaxLength="6" TabIndex="1" ToolTip="Type your APDT Membership Number in this box." /> <span class="small"><VAM:DataTypeCheckValidator ID="DataTypeCheckValidator1" runat="server" ControlIDToEvaluate="txtAccount"
        DataType="Integer" ErrorFormatter="Text (class: TextErrorFormatter)" ErrorMessage="Numbers only, please.">
        <ErrorFormatterContainer>
            <VAM:TextErrorFormatter Display="Dynamic" ForeColor="Red" />
        </ErrorFormatterContainer>
    </VAM:DataTypeCheckValidator>
    <VAM:RequiredTextValidator ID="RequiredTextValidator1" runat="server" ControlIDToEvaluate="txtAccount"
        ErrorFormatter="Red Error Message (class: TextErrorFormatter)" ErrorMessage="Enter Member Number.">
        <ErrorFormatterContainer>
            <VAM:TextErrorFormatter Display="Dynamic" Font-Bold="False" Font-Italic="False" Font-Overline="False"
                Font-Strikeout="False" Font-Underline="False" ForeColor="Red" Name="Red Error Message" />
        </ErrorFormatterContainer>
    </VAM:RequiredTextValidator>
</span>
</td>
</tr>

<tr>
<td colspan="2" class="textalgnctr">
 <asp:Button ID="btnCheckAccount" runat="server" Text="Check My Status" OnClick="btnCheckAccount_Click" /></td>
</tr>
</table>
</form>

<asp:Panel ID="pnlExpired" runat="server" Visible="false">
<p><asp:Literal ID="txtFirstName" runat="server"></asp:Literal>, it seems that your membership expired on <asp:Literal ID="txtDateExpire" runat="server"></asp:Literal>.&nbsp; Renew now &gt;</p>
</asp:Panel>
<asp:Panel ID="pnlActive" runat="server" Visible="false"><p> <asp:Literal ID="txtFirstNameActive" runat="server"></asp:Literal>, you are an active: <asp:Literal ID="txtMemberType" runat="server"></asp:Literal>.</p>

<asp:Panel ID="pnlSendEmail" runat="server" Visible="false">    
<p>Did you need your password sent to your email address?  If so, you may do so now:</p>
<p><asp:Button ID="btnSendEmail" runat="server" Text="Send My Password" /></p>
</asp:Panel>
</asp:Panel>

<asp:CheckBox ID="cbxActive" runat="server" Visible="false"/>
 <asp:Panel ID="pnlNoRecords" runat="server" Visible="false">

<p> No Records Found.  Please enter a valid Member Number.</p></asp:Panel>
    <asp:Panel ID="pnlNotYetActive" runat="server" Visible="false">
<p>Be patient, you are not yet active.</p>
</asp:Panel>

</body>
</html>


Comment
Watch Question

Change your Body tag to the following code and make sure your btnCheckAccount's CausesValidation Property is set to TRUE
[CODE]
<body id="twocol" onkeydown="if(event.keyCode == 13){document.getElementById('btnCheckAccount').click();}">
[/CODE]

HTH
Happy Programming
Rana

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

Commented:
Hey Rana!

Thank you.  That's exactly what I was looking for.  Problem solved!


Happy Programming!

Christopher
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.