65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Google Suggest API 的 AJAX AutoCompleteExtender

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.75/5 (11投票s)

2008 年 7 月 10 日

CPOL

1分钟阅读

viewsIcon

72275

downloadIcon

1322

一个使用 AutoCompleteExtender 实现类似 Google Suggest 搜索功能的示例。

引言

这是一个关于如何使用 AJAX 工具包的 AutoCompleteExtender,并使用 Google 的 Suggest API 创建类似 Google Suggest 的应用程序的示例。

背景

在这里,我尝试创建一个类似于 Google Suggest 的网站,使用 Google Suggest REST API

使用代码

如果您使用的是 VS 2005,则需要安装 AJAX。AutoCompleteExtender 需要来自 Web 服务的反馈。在这里,我创建了一个 Google Web 服务,名为 Google.asmxAutoCompleteExtender 在文本框上工作并使用 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 可以实现许多功能,例如在填写表单时向用户建议信息。

© . All rights reserved.