Click here to Skip to main content
15,881,281 members
Articles / Web Development / ASP.NET
Tip/Trick

Using AJAX AutoCompleteExtender for autosuggest

Rate me:
Please Sign up or sign in to vote.
5.00/5 (1 vote)
11 Dec 2012CPOL 11.6K   4  
This is an alternative for "Using Ajax AutoCompleteExtender for autosuggest"

Introduction

I wrote an article for autocomplete at http://www.codeproject.com/Articles/259376/Using-AJAX-AutoCompleteExtender-for-autosuggest. AJAX was an alternate, another alternate could be using jQuery.

Background   

jQuery is a lightweight JavaScript library. Using the jQuery plugin is simple. Building and deploying the autocomplete js just takes a few minutes and very few lines of code.

For using jQuery autosuggest, we need the js file "jquery.ui.autocomplete.autoSelect.js". Refer this link for download and help: http://docs.jquery.com/UI/Autocomplete.

Using the code 

Once you have added the auotoselect.js for a textbox you will get a property named autocomplete.

Add a textbox on which you wish to apply autosuggest and add the script. My function GetAllSearchProducts gets all the products beginning with the letter typed in the textbox named "searchproduct".

XML
<div>
    <input name="" type="text" class="txtF ui-autocomplete-input" 
       id="searchproduct" align="absmiddle" />
    <input name="" type="button" class="btimg" align="absmiddle"
            onclick="SearchProduct();" />
</div>

JavaScript code:

JavaScript
<script type="text/javascript">

    $(function () {
        $("#searchproduct").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "../Common/GetAllSearchProducts",
                    data: "{ 'name': '" + request.term + "' }",
                    dataType: "json",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    dataFilter: function (data) { return data; },
                    success: function (data) {
                        if (data != '') {
                            response($.map(data, function (item) {
                                return {
                                    value: item.Name,
                                    text: item.Id
                                };
                            }));
                        }                                                                            
                       
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        // alert('@T("Alert.Symbol.Msg")');
                    }
                });
            },
            select: function (event, ui) {

                $(':hidden[id=hdnmedicineid]').val(ui.item.text.toString());
                $(':hidden[id=hdnmedicinenm]').val(ui.item.value.toString());

            },

            minLength: 1,
            autoFocus: true
        });

    });
                       
</script>

C# code:

C#
public JsonResult GetAllSearchProducts(string name = "")
{
    //get all products
    var products = _productService.GetAllProducts(name).ToList();

    var result = from m in products
                select new { m.Id, m.Name };

    return Json(result.ToList(), JsonRequestBehavior.AllowGet);
}

Points of Interest  

Found it simple and easy to use. Implementation is easy and rendering is fast.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Program Manager Infobeans
India India
I have keen interest in learning new things, exploring more on a topic and being more versatile

Comments and Discussions

 
-- There are no messages in this forum --