jQuery autocomplete with images and text

preview_player
Показать описание
Link for all dot net and sql server video tutorial playlists

Link for slides, code samples and text version of the video

Healthy diet is very important both for the body and mind. If you like Aarvi Kitchen recipes, please support by sharing, subscribing and liking our YouTube channel. Hope you can help.

In this video we will discuss how to display both images and text in the suggestions menu of jQuery autocomplete widget. Let us understand this with an example.

When we type the first character of a country name, we want to retrieve all the countries that start with that letter and display their flag and name in the suggestions menu.

Web Service Code

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.Script.Serialization;
using System.Web.Services;

namespace Demo
{
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class CountryService : System.Web.Services.WebService
{
[WebMethod]
public void GetCountries(string term)
{
string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
List<Country> countries = new List<Country>();
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("spGetCountries", con);
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter paramName = new SqlParameter()
{
Value = term
};
cmd.Parameters.Add(paramName);

con.Open();
SqlDataReader rdr = cmd.ExecuteReader();

while(rdr.Read())
{
Country country = new Country();
country.Id = Convert.ToInt32(rdr["Id"]);
country.Name = rdr["Name"].ToString();
country.FlagPath = rdr["FlagPath"].ToString();
countries.Add(country);
}
}

JavaScriptSerializer js = new JavaScriptSerializer();
Context.Response.Write(js.Serialize(countries));
}
}
}

jQuery Code

<!DOCTYPE html>
<head runat="server">
<title></title>
<script type="text/javascript">
$(document).ready(function () {
$('#txtName').autocomplete({
minLength: 1,
source: function (request, response) {
$.ajax({
method: 'post',
dataType: 'json',
success: function (data) {
response(data);
},
error: function (err) {
alert(err);
}
});
},
focus: updateTextBox,
select: updateTextBox
})
.autocomplete('instance')._renderItem = function (ul, item) {
return $('<li>')
.append("<img class='imageClass' src=" + item.FlagPath + " alt=" + item.Name + "/>")
.append('<a>' + item.Name + '</a>')
.appendTo(ul);
};

function updateTextBox(event, ui) {
return false;
}
});
</script>
<style>
.imageClass {
width: 16px;
height: 16px;
padding-right: 3px;
}
</style>
</head>
<body style="font-family: Arial">
<form id="form1" runat="server">
Country Name : <input id="txtName" type="text" />
</form>
</body>
</html>
Рекомендации по теме
Комментарии
Автор

You didn't have to close the <li> with </li>?

roadtripping
Автор

well explained but one question.

When you created updateTextBox(event, ui) function and called it from 'focus' and 'select' event, you didn't pass arguments then how it was able to get the 'event' and 'ui' parameters?

raman-jnyt
Автор

This is best tutorial for jQuery Step by Step (Thank)

nbtion
Автор

Nice example! Is to possible to store/pull the image from the database? Let me guess, absolutely! Many thanks.

CodingSquid
Автор

Yessss, finally with images thank u so much.

aalmohalla
Автор

Venkat, when do you use a 'post' and when do you use a 'get'? I get confused on this and I haven't heard a good explanation from you on how to choose these.

josephregallis
Автор

firstly thanks this video.
ı have a question. this app run on localhost but not running hosting

mehmetakifvurucu
welcome to shbcf.ru