Решение:
Using aspx: In my page I have a text box: <input id="txtSearch" type="text" /> I am using jQuery autocomplete, set up per their example: <link rel="stylesheet" href="js/jquery.autocomplete.css" type="text/css" /> <script type="text/javascript" src="js/jquery.bgiframe.js"></script> <script type="text/javascript" src="js/jquery.dimensions.pack.js"></script> <script type="text/javascript" src="js/jquery.autocomplete.js"></script> Here is where it starts to get hacky... I call a page instead of a webservice: <script type="text/javascript"> $(document).ready(function(){ $("#txtSearch").autocomplete('autocompletetagdata.aspx'); }); </script> In the page I stripped out ALL of the html and just have this (otherwise, various HTML bits show up in the autocomplete dropdown): protected void Page_Load(object sender, EventArgs e) { // Note the query strings passed by jquery autocomplete: //QueryString: {q=a&limit=150×tamp=1227198175320} LookupTagCollection tags = Select.AllColumnsFrom<LookupTag>() .Top(Request.QueryString["limit"]) .Where(LookupTag.Columns.TagDescription).Like(Request.QueryString["q"] + "%") .OrderAsc(LookupTag.Columns.TagDescription) .ExecuteAsCollection<LookupTagCollection>(); StringBuilder sb = new StringBuilder(); foreach (LookupTag tag in tags) { sb.Append(tag.TagDescription).Append("\n"); } Response.Write(sb.ToString()); } If you don't do a LIKE query, then it returns everything that contains a match for the character(s) you type -- e.g., typing "a" will include "Ask" and "Answer" as well as "March" and "Mega." I just wanted it to do a starts with match. Using the ashx: <script type="text/javascript"> $(document).ready(function(){ $("#txtSearch").autocomplete('autocompletetagdata.ashx'); }); </script> [WebService(Namespace = "http://www.yoursite.com/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class AutocompleteTagData : IHttpHandler { public void ProcessRequest(HttpContext context) { // Note the query strings passed by jquery autocomplete: //QueryString: {q=a&limit=150×tamp=1227198175320} LookupTagCollection tags = Select.AllColumnsFrom<LookupTag>() .Top(context.Request.QueryString["limit"]) .Where(LookupTag.Columns.TagDescription).Like(context.Request.QueryString["q"] + "%") .OrderAsc(LookupTag.Columns.TagDescription) .ExecuteAsCollection<LookupTagCollection>(); foreach (LookupTag tag in tags) { context.Response.Write(tag.TagDescription + Environment.NewLine); } } public bool IsReusable { get { return false; } } }
Статья – http://stackoverflow.com/questions/305994/jquery-autocomplete-and-asp-net