使用 Google Suggest API 的 AJAX AutoCompleteExtender
一个使用 AutoCompleteExtender 实现类似 Google Suggest 搜索功能的示例。
引言
这是一个关于如何使用 AJAX 工具包的 AutoCompleteExtender
,并使用 Google 的 Suggest API 创建类似 Google Suggest 的应用程序的示例。
背景
在这里,我尝试创建一个类似于 Google Suggest 的网站,使用 Google Suggest REST API。
使用代码
如果您使用的是 VS 2005,则需要安装 AJAX。AutoCompleteExtender
需要来自 Web 服务的反馈。在这里,我创建了一个 Google Web 服务,名为 Google.asmx。AutoCompleteExtender
在文本框上工作并使用 Web 服务方法。您需要一个 Web 表单 (default.aspx) 和一个 Web 服务 (google.asmx)。注意:我使用了带有 AJAX 扩展和 AjaxControlToolkit 的 VS 2005。从 VS 2005 创建一个新的 AJAX 启用网站。default.aspx 只有文本框和相关的 AutoCompleteExtender
。
首先,让我们看一下 Web 服务。我将其命名为 google.asmx。
<%@ WebService Language="C#" Class="google" %>
using System;
using System.Collections.Generic;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml;
/// <summary>
/// Summary description for google
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class google : System.Web.Services.WebService
{
[WebMethod]
public string[] getList(String prefixText)
{
XmlDocument doc = new XmlDocument();
List<String> suggArList = new List<string>();
string url = "http://google.com/complete/search?output=toolbar&q=" + prefixText;
doc.Load(url);
foreach (XmlNode node in doc.SelectNodes("//CompleteSuggestion"))
{
string value = node.SelectSingleNode("suggestion/@data").InnerText;
suggArList.Add(value);
}
return suggArList.ToArray();
}
}
default.aspx 包含脚本管理器、文本框、按钮以及与文本框关联的 AutoCompleteExtender
。请查看代码。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Focus();
}
protected void Button1_Click(object sender, EventArgs e)
{
string url = "http://www.google.co.in/search?hl=en&q=" + TextBox1.Text;
Response.Redirect(url);
}
}
关注点
我认为代码不言自明且易于理解。AutoCompleteExtender
可以实现许多功能,例如在填写表单时向用户建议信息。