In
this article I am going to explain implement the autocomplete functionality in
asp.net application using jquery.
Description:
In
the previous article I have explained Cascading dropdownlists with linq to sql
and Play Youtube video using video url in Asp.net.
I
have a table Tb_Movie which store
the information of movie like name, budget and genre. I want to search the
records from table according to name.
Implementation:
Add
a webform to project and add the required control from toolbox to webform.
HTML Markup
of webform:
<fieldset
style="width:450px">
            <legend></legend>
            <table>
                <tr>
                    <td>Movie Name:</td>
                    <td><asp:TextBox ID="txtsearch" runat="server"></asp:TextBox></td>
                </tr>
            </table>
        </fieldset>    
Import the
namespaces
C#:
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using
System.Web.Services;
VB:
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Web.Services
Create a
webmethod to get the movie name
C#
code:
[WebMethod]
   
public static List<string>GetMovieName(string MovieName)
   
{
       
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ToString());
       
SqlCommand cmd = new SqlCommand("Select name from
tb_movie where name like @name +'%'", con);
       
cmd.Parameters.AddWithValue("@name", MovieName);
       
con.Open();
       
SqlDataReader dr = cmd.ExecuteReader();
       
List<string> movienames = new List<string>();
       
while (dr.Read())
       
{
            movienames.Add(dr["name"].ToString());
       
}
       
con.Close();
       
return movienames;
    }
VB.net
code:
<WebMethod()>
   
Public Shared Function GetMovieName(MovieName As String) As List(Of String)
       
Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("connection").ToString())
       
Dim cmd As New SqlCommand("Select name from
tb_movie where name like @name +'%'", con)
    
   cmd.Parameters.AddWithValue("@name", MovieName)
       
con.Open()
       
Dim dr As SqlDataReader = cmd.ExecuteReader()
       
Dim movienames As New List(Of String)()
       
While dr.Read()
            movienames.Add(dr("name").ToString())
       
End While
       
con.Close()
       
Return movienames
    End Function
Add the Jquery
to webform
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
     
$(document).ready (function () {
         
$("#txtsearch").autocomplete({
              autoFocus: true,
              source: function (request, response) {
                  $.ajax({
                      url: "default2.aspx/GetMovieName",
                        data: "{'MovieName': '" + request.term + "'}",
                        dataType: "json",
                        type: "POST",
                        contentType: "application/json;
charset=utf-8",
                        success: function (data) {
                           
response($.map(data.d, function (item) {
                                return {
                                    label: item
                                }
    
                       }))
                        },
                        messages: {
                            noResults: "", results: ""
                        },
                        error: function (response) {
                            alert(response.responseText);
                        },
                        failure: function (response) {
                           
alert(response.responseText);
                        }
                    });
                },
               //minLength to specify after how many
characters input call for suggestions to be made.
               minLength: 1,
          
});
     
});
  </script>
After
adding jquery to webform below given is the complete HTML markup of webfrom
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
   
<title></title>
     
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
     
$(document).ready (function () {
         
$("#txtsearch").autocomplete({
              autoFocus: true,
              source: function (request, response) {
                  $.ajax({
                      url: "default2.aspx/GetMovieName",
                        data: "{'MovieName': '" + request.term + "'}",
                        dataType: "json",
                        type: "POST",
                        contentType: "application/json;
charset=utf-8",
                        success: function (data) {
                           
response($.map(data.d, function (item) {
                                return {
                                    label: item
                                }
                            }))
                        },
                        messages: {
                            noResults: "", results: ""
                        },
                        error: function (response) {
   
                        alert(response.responseText);
                        },
                        failure: function (response) {
                           
alert(response.responseText);
                        }
                    });
          
     },
               //minLength to specify after how many
characters input call for suggestions to be made.
               minLength: 1,
          
});
     
});
  </script>
</head>
<body>
   
<form id="form1" runat="server">
   
<div>
       
<fieldset style="width:450px">
            <legend></legend>
            <table>
                <tr>
                    <td>Movie Name:</td>
                    <td><asp:TextBox ID="txtsearch" runat="server"></asp:TextBox></td>
                </tr>
    
       </table>
       
</fieldset>           
   
</div>
   
</form>
</body>
</html>
Build
and run the application. Test it by the enter the name of movie exist in the
records.
 Demo:
![]()  | 
| Add caption | 
  In this article we have learn to how to implement the autocomplete textbox from database in asp.net application using Jquery(C#, VB.net). I hope you enjoyed this article.


great
ReplyDelete