Part 97 Implement autocomplete textbox functionality in mvc04:33

  • 0
Published on November 11, 2017

Link for code samples used in the demo

Link for csharp, asp.net, ado.net, dotnet basics, mvc and sql server video tutorial playlists

In this video, we will discuss implementing auto-complete functionality in an asp.net mvc application using jQuery Autocomplete Widget.

Step 1: We will be using tblStudents table in this demo.

Step 2: Create an ado.net entity data model using table tblStudents. Change the name of the generated entity from tblStudent to Student.

Step 3: Download autocomplete widget from

Step 4: Open “js” folder copy “jquery-1.9.1.js” and “jquery-ui-1.10.3.custom.min.js” files and paste them in the “Scripts” folder of you mvc project. Now open “css” folder. This folder will be present in “ui-lightness” folder. Copy “images” folder and “jquery-ui-1.10.3.custom.min.css” file and paste them in “Content” folder in your mvc project. If you are following along, at this point your solution explorer should look as shown below.

Step 5: Right click on the “Controllers” folder and add “Home” controller. Copy and paste the following code. Please make sure to include “MVCDemo.Models” namespace.
public class HomeController : Controller
{
public ActionResult Index()
{
DatabaseContext db = new DatabaseContext();
return View(db.Students);
}

[HttpPost]
public ActionResult Index(string searchTerm)
{
DatabaseContext db = new DatabaseContext();
List[Student] students;
if (string.IsNullOrEmpty(searchTerm))
{
students = db.Students.ToList();
}
else
{
students = db.Students
.Where(s =] s.Name.StartsWith(searchTerm)).ToList();
}
return View(students);
}

public JsonResult GetStudents(string term)
{
DatabaseContext db = new DatabaseContext();
List[string] students = db.Students.Where(s =] s.Name.StartsWith(term))
.Select(x =] x.Name).ToList();
return Json(students, JsonRequestBehavior.AllowGet);
}
}

Step 6: Right click on the “Index” action method in the “HomeController” and add “Index” view. Copy and paste the following code.
@model IEnumerable[MVCDemo.Models.Student]

[link href=”~/Content/jquery-ui-1.10.3.custom.min.css” rel=”stylesheet” type=”text/css” /]
[script src=”~/Scripts/jquery-1.9.1.js” type=”text/javascript”][/script]
[script src=”~/Scripts/jquery-ui-1.10.3.custom.min.js” type=”text/javascript”][/script]

[script type=”text/javascript”]
$(function () {
$(‘#txtSearch’).autocomplete({
source: ‘@Url.Action(“GetStudents”)’,
minLength: 1
});
});
[/script]

[div style=”font-family:Arial”]
@using (@Html.BeginForm())
{
[label for=”Name”]Name: [/label]
@Html.TextBox(“searchTerm”, null, new { id = “txtSearch” })
[input type=”submit” value=”Search” /]
}

[table border=”1″]
[tr]
[th]
@Html.DisplayNameFor(model =] model.Name)
[/th]
[th]
@Html.DisplayNameFor(model =] model.Gender)
[/th]
[th]
@Html.DisplayNameFor(model =] model.TotalMarks)
[/th]
[/tr]

@foreach (var item in Model)
{
[tr]
[td]
@Html.DisplayFor(modelItem =] item.Name)
[/td]
[td]
@Html.DisplayFor(modelItem =] item.Gender)
[/td]
[td]
@Html.DisplayFor(modelItem =] item.TotalMarks)
[/td]
[/tr]
}
[/table]
[/div]

Enjoyed this video?
"No Thanks. Please Close This Box!"