I
designed one registration page in that user will enter userdetails like
username, password etc at the time of enter username in textbox I need to
validate the username whether that username available or already taken by any
other user for that I am checking username availability in database based on
username. Here I am getting one problem that is after enter username in textbox
I am getting the data from database and showing the result on page like whether
that username available or not but at that time page gets postback and losing
the entered values in textboxes for that reason I used ajax concept to check
username availability.
Now we can see how to check username availability in our application without postback for that First add AjaxControlToolkit reference to your application and add
<%@ Register Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit"
tagPrefix="ajax"
%>
To
your aspx page and design your page likes this
<html
xmlns="http://www.w3.org/1999/xhtml">
<head
id="Head1"
runat="server">
<title>Check
Username availability Using Ajax</title>
</head>
<body>
<form
id="form1"
runat="server">
<asp:ScriptManager
ID="scriptmanager1"
runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel
ID="PnlUsrDetails"
runat="server">
<ContentTemplate>
<table>
<tr>
<td>
UserName:
</td>
<td>
<asp:TextBox
ID="txtUsername"
runat="server"
AutoPostBack="true"
ontextchanged="txtUsername_TextChanged"/>
</td>
<td>
<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>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
|
If
you observe above code I placed textbox in update panel to allow only partial
postback based on that we can avoid the complete postaback of page during
getting the data from database and I set property AutoPostBack="true" And used ontextchanged="txtUsername_TextChanged" event to display
result after enter the text in textbox.
Now
add using System.Data.SqlClient; reference in
codebehind and write the following code to get the username from database
protected
void txtUsername_TextChanged(object sender, EventArgs
e)
{
if
(!string.IsNullOrEmpty(txtUsername.Text))
{
SqlConnection
con = new SqlConnection("Data Source=mydatabase;Integrated
Security=true;Initial Catalog=MySampleDB");
con.Open();
SqlCommand
cmd = new SqlCommand("select * from UserInformation where
UserName=@Name", con);
cmd.Parameters.AddWithValue("@Name", txtUsername.Text);
SqlDataReader
dr = cmd.ExecuteReader();
if
(dr.HasRows)
{
checkusername.Visible
= true;
imgstatus.ImageUrl
= "NotAvailable.jpg";
lblStatus.Text
= "UserName Already Taken";
}
else
{
checkusername.Visible
= true;
imgstatus.ImageUrl
= "Icon_Available.gif";
lblStatus.Text
= "UserName Available";
}
}
else
{
checkusername.Visible
= false;
}
}
|
No comments:
Post a Comment