Ajax 自动提示 AutoCompleteExtender
![查看 Ajax 自动提示](https://images.cnblogs.com/cnblogs_com/zengxiangzhan/WindowsLiveWriter/AjaxAutoCompleteExtender_116B5/InlineRepresentation2a35728c-d3a5-4c01-aa2a-40a00e89e391.jpg)
html:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="TextBox1" MinimumPrefixLength="1" ServiceMethod="GetProductName" ServicePath="WebService.asmx"> </cc1:AutoCompleteExtender> </div> </div> </form> </body> </html>
WebService.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Data.SqlClient; using System.Data; using System.Web.Script.Services;//关键程序集引用 /// <summary> ///WebService 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { public WebService () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] [ScriptMethod] public string[] GetProductName(string prefixText, int count) { List<string> suggestions = new List<string>();//声明一泛型集合 SqlConnection con = new SqlConnection("server=JUQI;database=NorthWind;uid=sa;pwd=sa;"); con.Open(); SqlCommand com = new SqlCommand("select distinct productname from Products where productname like @prefixname order by productname", con); com.Parameters.Add("@prefixname", SqlDbType.NVarChar).Value = prefixText + "%"; SqlDataReader sdr = com.ExecuteReader(); while (sdr.Read()) { suggestions.Add(sdr.GetString(0)); } sdr.Close(); con.Close(); return suggestions.ToArray(); } }