Everything looks pretty good below. I have provided 3 parts that the service works great if requested.
/// <summary> /// Summary description for AutoCompleteService /// </summary> [WebService(Namespace = "http://schemas")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] [System.Web.Script.Services.ScriptService] public class AutoCompleteService : BaseWebService { /// <summary> /// Gets or sets the account finder service. /// </summary> public ICheckoutService CheckOutService { get; set; } /// <summary> /// Finds all addresses matching either the postcode or suburb given in the prefix text. /// </summary> /// <param name="prefixText">The prefix text.</param> /// <param name="count">The count.</param> /// <returns>Aray of address details</returns> [WebMethod] public string[] FindAddresses(string prefixText, int count) { //Check the parameters if (count == 0) count = 10; var suburbs = CheckOutService.FindMatchingForPartialAddress(prefixText); return suburbs.Take(count).ToArray(); } }
Following javascript
<script language="javascript"> $(function () { $("#postcode").autocomplete({ source: "AutoCompleteService.asmx/FindAddresses", minLength: 1, select: function (event, ui) { $(this).val(ui.item.value); } }); }); </script>
Following the text box
<asp:TextBox runat="server" name="postcode" id="postcode" ></asp:TextBox>
Answer
<ArrayOfStringxmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns: xsd="http://www.w3.org/2001/XMLSchema"xmlns="http://schemas.forcetechnology.com.au/2009/04/Fulfilment"><string>ABBARIVER,WA,6280</string><string>ABBEY,WA,6280</string><string>ACTONPARK,WA,6280</string>string>ADAMSVALE,WA,6375</string></ArrayOfString>
OK I made the following changes, thank you all for pointing me in the right direction, and also provided me with a starting point, error messages are also provided for this, which help to review below.
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string[] FindAddresses(string prefixText) { //Check the parameters var suburbs = CheckOutService.FindMatchingForPartialAddress(prefixText); return suburbs.ToArray(); } $(document).ready(function () { $('[ID$=postcode]').live('keyup.autocomplete', function () { $(this).autocomplete({ source: function (request, response) { alert(request.term); $.ajax({ url: '<%=ResolveUrl("AutoCompleteService.asmx/FindAddresses") %>', data: "{ prefixText:'" + request.term + "'}", dataType: "json", type: "POST", contentType: "application/json; charset=utf-8", success: function (data) { response($.map(data.d, function (item) { return { label: item.split('-')[0], val: item.split('-')[1] } })) }, error: function (response) { alert(response.responseText); }, failure: function (response) { alert(response.responseText); } }); }, select: function (e, i) { }, minLength: 1 }); }); });