|
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||
|
Announcements
Want a new Job?
Chapters
Services
Feature Zones
|
IntroductionThe purpose of this article is to show how to use the free BackgroundHave you seen Google Suggest? It is an application created by Google that demonstrates the power of AJAX. It is really amazing to see it for the first time, but in a little while, the notoriety wears off and most developers forget about it. While many people acknowledge its 'coolness' factor, they don’t know how to integrate it with other web applications. The first time I saw this control, I came away with the same feeling. What an awesome idea, but I have no use for it. Several months ago, I started working on a travel application called 'Travelope' (see here). When working on the airfare search form, I was thinking of a simple interface for selecting FROM and TO locations. I considered using a combo box, but there were 1000s of cities, so the form would take a long time to load. Another option would be to use a text box with a link to popup a city lookup window. That would require users to open a reference window every time they forgot the spelling, so that would not be a great option either. I started looking at other travel sites for ideas. Many of these sites were using 'Google Suggest'-like controls for the purpose of selecting cities and airports. I thought that would be perfect for 'Travelope', too. And that was how Using the codeWhat is AutoSuggestBox?
Adding AutoSuggestBox to your Web ApplicationDownload the appropriate
First, add a reference to 'AutoSuggestBox.dll'. Then create a sub-directory 'asb-includes' under the root of your web application. Copy the other three files into the new sub-directory. More detailed instructions are available here. Specify data types for loading auto-suggest menu itemsWhen the user starts typing in the To add a data source, you need to modify the 'GetAutoSuggestData.aspx' file. By default, the class implements the " private ArrayList LoadMenuItems(string sDataType, string sKeyword)
{
ArrayList aMenuItems;
switch(sDataType)
{
case "City":
aMenuItems=LoadCities(sKeyword);
break;
default:
throw new Exception("GetAutoSuggestData Type '" +
sDataType + "' is not supported.");
}
return aMenuItems;
}
The ' private ArrayList LoadCities(string sKeyword)
{
ArrayList aOut=new ArrayList();
string sConnString="Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=c:\\databases\\AutoSuggestBox_Demo.mdb;" +
"User Id=admin;Password=;";
OleDbConnection oCn=new OleDbConnection(sConnString);
string sSql="SELECT TOP 10 tblCity.Name as CityName, " +
"tblCity.Code as CityCode, " +
"tblCountry.Name as CountryName, " +
"tblState.Name as StateName " +
" FROM (tblCity INNER JOIN tblCountry" +
" ON tblCity.CountryID=tblCountry.ID) " +
" LEFT OUTER JOIN tblState" +
" ON tblCity.StateID=tblState.ID " +
" WHERE (tblCity.Name LIKE '" +
sKeyword.Replace("'", "''") + "%') " +
" ORDER BY tblCity.Name";
OleDbCommand oCmd = new OleDbCommand(sSql, oCn);
oCn.Open();
OleDbDataReader oReader = oCmd.ExecuteReader();
string sCity;
string sCityCode;
string sState;
string sCountry;
string sLabel;
ASBMenuItem oMenuItem;
while (oReader.Read())
{
//Build label using City, Country & State
sCity =oReader.GetString(0);
sCityCode =oReader.GetString(1);
sCountry =oReader.GetString(2);
if (oReader.GetValue(3)==System.DBNull.Value)
sState="";
else
sState=oReader.GetString(3);
sLabel=sCity;
//Append either state or country
if (sState != "")
sLabel+=", " + sState;
else
sLabel+=", " + sCountry;
oMenuItem=new ASBMenuItem();
oMenuItem.Label=sLabel;
oMenuItem.Value=sCityCode;
aOut.Add(oMenuItem);
}
oReader.Close();
oCn.Close();
return aOut;
}
If you need to add other data sources, just add more Insert the AutoSuggestBox control into a web form
How Does it WorkWhen the user starts typing text in the control, JavaScript handles the So the flow of events is as follows:
ConclusionIn this article, we demonstrated how simple it is to add 'Google Suggest' functionality to your web applications using the free Happy programming!!! Points of Interest
|
||||||||||||||||||||||||