views:

307

answers:

3

I'm porting a Forms app to a VB.NET web app, and one of the feature the users really liked was the ability to narrow the possible choices as the user typed in a search box. The search itself goes against multiple tables and columns (and takes several seconds), so it's not a simple AutoComplete or anything. What's the best way to allow the user to type, and asynchronously update a ListView with the matches?

+1  A: 

JQuery will be a good solution to filter the ListView at client side. Check this recent article and another cool demo here

Jobi Joy
+1  A: 

You should be able to use the Dynamic Populate control in the AJAX Control Toolkit to do most of the legwork.

Jeremy Frey
Unless I'm missing something, I can't get the Dynamic Populate control to fire as the user types, only when something is clicked.
gfrizzle
A: 

Check out the ASP.NET AJAX controls. There is a specific control for autocompletion:

AutoComplete is an ASP.NET AJAX extender that can be attached to any TextBox control, and will associate that control with a popup panel to display words that begin with the prefix typed into the textbox.

The dropdown with candidate words supplied by a web service is positioned on the bottom left of the text box.

In the sample above, the textbox is associated with an AutoCompleteExtender that pulls words that start with the contents of the textbox using a web service.

When you have typed more content than the specified minimum word length, a popup will show words or phrases starting with that value. Caching is turned on, so typing the same prefix multiple times results in only one call to the web service.

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx

There is also a control for searching lists, as you described.

Abyss Knight