On the web, if without loading (i.e. using ajax), you have to immediately mark all the options on the web page, for example, in the js variable and also the js script can be loaded in the input field. Or pre-create html-list of all options and use it with the help of datalist:
<!DOCTYPE html> <html> <head> </head> <body> <input type="text" id="txtAutoComplete" list="languageList"/> <datalist id="languageList"> <option value="HTML" /> <option value="CSS" /> <option value="JavaScript" /> <option value="SQL" /> <option value="PHP" /> <option value="jQuery" /> <option value="Bootstrap" /> <option value="Angular" /> <option value="ASP.NET" /> <option value="XML" /> </datalist> </body> </html>
A source
Example of loading from the array Strings []: HTML code ASP.Net pages:
<asp:TextBox ID="tbxInput" runat="server" list="myList"></asp:TextBox> <asp:Label ID="lblmyList" runat="server" Text=""></asp:Label>
Function in the page load code:
protected void Page_Load(object sender, EventArgs e) { String[] myArray = new String[] { "один", "два", "три", "дважды" }; string myList = "<datalist id='myList'>"; foreach (string str in myArray) { myList += "<option value='" + str + "' />"; } myList += "</datalist>"; lblmyList.Text = myList; }
The result of the example:

If you need a load, but there is no desire to write an ajax-loader yourself, you can use the AutoComplete component from the ajaxControlToolkit library . Example:
<ajaxToolkit:AutoCompleteExtender runat="server" ID="autoComplete1" TargetControlID="myTextBox" ServiceMethod="GetCompletionList" ServicePath="AutoComplete.asmx" MinimumPrefixLength="2" CompletionInterval="1000" EnableCaching="true" CompletionSetCount="20" CompletionListCssClass="autocomplete_completionListElement" CompletionListItemCssClass="autocomplete_listItem" CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem" DelimiterCharacters=";, :"> <Animations> <OnShow> ... </OnShow> <OnHide> ... </OnHide> </Animations> </ajaxToolkit:AutoCompleteExtender>
In the code (C #), you will need to write a load handler:
[System.Web.Services.WebMethod] [System.Web.Script.Services.ScriptMethod] public string[] GetCompletionList(string prefixText, int count) { ...