I have a small registration script where a user enters an email address, and on the fly will check to see if the email is already in the database (whereas a prompt will display below the textbox is the email/username is or not available. But when hitting submit , the form just remains static, it doesnt render an error or post to the database:
////////Ajax objects on ASPX page<asp:ScriptManager ID="scriptmanager1" runat="server"></asp:ScriptManager><script type="text/javascript"> Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler); function BeginRequestHandler(sender, args) { var state = document.getElementById('loadingdiv').style.display; if (state == 'block') { document.getElementById('loadingdiv').style.display = 'none'; } else { document.getElementById('loadingdiv').style.display = 'block'; } args.get_postBackElement().disabled = true; }</script> /////////////email textbox encapsulated with asp.net control coding <asp:UpdatePanel ID="PnlUsrDetails" runat="server"><ContentTemplate><asp:Label ID="LabelEmail" runat="server" Text="Email:" CssClass="BlackText" Width="200px"></asp:Label><asp:TextBox ID="TextBoxEmail" runat="server" Width="250px" AutoPostBack="true" ontextchanged="txtEmail_TextChanged"/></asp:TextBox><asp:RequiredFieldValidator ID="RFVUserEMail" runat="server" ForeColor="Red" Display="None" ControlToValidate="TextBoxEmail" ErrorMessage="Enter a valid Email address.">Email</asp:RequiredFieldValidator><asp:RegularExpressionValidator ID="REVUserEMail" runat="server" ForeColor="Red" Display="None" ControlToValidate="TextBoxEmail" ErrorMessage="Enter Correct E-Mail" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">Email</asp:RegularExpressionValidator><!--placeholder to give status of email taken or not --><div id="checkusername" runat="server" Visible="false"><asp:Image ID="imgstatus" runat="server" Width="17px" Height="17px"/><asp:Label ID="lblStatus" runat="server"></asp:Label></div><!--loading gif --><div class="waitingdiv" id="loadingdiv" style="display:none; margin-left:5.3em"><img src="LoadingImage.gif" alt="Loading" />Please wait...</div></ContentTemplate></asp:UpdatePanel></div> ///////////// //////////// /// code behind method to process the check for duplicate emails protected void txtEmail_TextChanged(object sender, EventArgs e) { if(!string.IsNullOrEmpty(TextBoxEmail.Text)) { SqlConnection con = new SqlConnection("Data Source=dbaseserver.com; Initial Catalog=mydb; User ID=mydb; Password=1234;"); con.Open(); SqlCommand cmd = new SqlCommand("select * from Users where Email=@Email", con); cmd.Parameters.AddWithValue("@Email", TextBoxEmail.Text); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { checkusername.Visible = true; imgstatus.ImageUrl = "NotAvailable.jpg"; lblStatus.Text = "UserName Already Taken"; System.Threading.Thread.Sleep(2000); } else { checkusername.Visible = true; imgstatus.ImageUrl = "Icon_Available.gif"; lblStatus.Text = "UserName Available"; System.Threading.Thread.Sleep(2000); } } else { checkusername.Visible = false; } }//need this extra brace? ///end checkdupe
Wondering if there is a page_load, ispostback thing I am overlooking of not taking into account.
thakns in advance
chumley