To implement this functionality, you will need four things: a textbox control to extend, the extender from the ASP.NET AJAX Toolkit, a web service or page method to query, and data to search for relevant results. Examples are the best way to learn ASP.NET, so let's take a look at a very quick implementation.
Our sample page contains a text box with ID of "txtAutoComplete", and then immediately below that we add our ASP.NET AutoComplete Extender control with a TargetControl ID that references the textbox ID. The ServiceMethod references the page method that will return results to display, as we define below.
<asp:TextBox runat="server" ID="txtAutoComplete" />
<asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtAutoComplete" ServiceMethod="GetCompletionList" />
To make this easy we want to use a page method to return results instead of building a web service. This method would go in the code behind the page that contains the above textbox and extender, and must have a very specific signature so that it can be called by the ASP.NET autocomplete extender. Here is a brief example that returns a static list of items:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string[] GetCompletionList(string prefixText, int count)
{
//Place your code to create a string array here. It should query some data using the prefixText and count
string[] list = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6"};
return list;
}
This is how the above example would look on your page:

click to enlarge
For a functional implemention, you would customize the above service method to use the prefixText and search a database for relevant terms. Below is a screenshot of an example that searches a database of college sports teams based upon the text entered and returns matching results:

click to enlarge