Search code examples
jqueryasp.netjquery-uiajaxpro

jquery autoComplete with List<string> as Source


i have text box name txtEmailList, i provided autocomplete list for it,

 <asp:TextBox runat="server" ID="txtEmailList" CssClass="txtAutoComplete">

script for autocomplete

$('#txtEmailList').autocomplete({
                source: function(request, response) {
// this is the ajax call, which is running successfully
                    var msg = 
Assessments_JqueryAutoComplete.AutoComplete(request.term).value; //(ajaxpro functions)
                    response(msg.d); 
                }

            });

output will come as like this (in firebug it shows as plain/text), how can i attach this array to source property. ( i cant use $.ajax method, as i need to use ajaxpro as office rules), so i get the list of array back from ajax call, how do i bind the autocomplete.

["List 1","List 2","List 3","List 4"];/* // this is the output response from jquery( from firebug)

[AjaxPro.AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
public List<string> AutoComplete(string query)
{
List<string> objLisItmes = new List<string>();
objLisItmes.Add("List 1");
objLisItmes.Add("List 2");
objLisItmes.Add("List 3");
objLisItmes.Add("List 4");
return  objLisItmes;
}

this is the firebug output in for Response headers

Cache-Controlno-cache Content-Length40 Content-Typetext/plain; charset=utf-8 DateWed, 07 Mar 2012 10:45:37 GMT Expires-1Pragmano-cache


Solution

  • Instead of returning a List. I would return a string Array as:

    [AjaxPro.AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
    public string[] AutoComplete(string query)
    {
       List<string> objLisItmes = new List<string>();
       objLisItmes.Add("List 1");
       objLisItmes.Add("List 2");
       objLisItmes.Add("List 3");
       objLisItmes.Add("List 4");
       return  objLisItmes.ToArray();
    }