AutoComplete Extender控件C#
AutoComplete Extender控件基本属性
|
ServicePath |
指定自动完成功能Web Service的路径 ServicePath="AutoCompleteService.asmx" |
|
ServiceMethod |
指定自动完成功能Web Method的名称 ServiceMethod="GetWordList" |
|
DropDownPanelID |
指定显示列表的Panel的ID,一般情况会提供一个默认的,我们无需指定 |
|
minimumprefixlength |
开始提供自动完成列表的文本框内最少的输入字符数量。 minimumprefixlength="1" |
先创建aspx页面
拖入AutoComplete Extender控件
基本配置如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<ajaxToolkit:ToolkitScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="TextBox1" ServicePath="WebService.asmx" ServiceMethod="GetCompleteList" MinimumPrefixLength="1">
</ajaxToolkit:AutoCompleteExtender>
</div>
</form>
</body>
</html>
在创建web服务:
代码如下:
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
DataTable dt = new DataTable();
conn con = new conn();
DataSet ds = new DataSet();
public WebService () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string[] GetCompleteList(string prefixText, int count)
{
//char c1, c2, c3;
//if (count == 0)
// count = 10;
//List<String> list = new List<string>(count);
//Random rnd = new Random();
//for (int i = 1; i <= count; i++)
//{
// c1 = (char)rnd.Next(65, 90);
// c2 = (char)rnd.Next(97, 122);
// c3 = (char)rnd.Next(97, 122);
// list.Add(prefixText + c1 + c2 + c3);
//}
//return list.ToArray();
SqlDataAdapter Da = new SqlDataAdapter("select u_email from HB_UserInfo where u_email like '" + prefixText + "%'", con.getConnectionString());
Da.Fill(ds, "DsTest");
string[] email = new string[ds.Tables[0].Rows.Count];
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
email[i] = ds.Tables[0].Rows[i][0].ToString();
}
return email;
}
}
以下是VB.NET
<td style="width: 150px">
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtEmployer" ServicePath="WebService.asmx" ServiceMethod="GetCompleteList" MinimumPrefixLength="1" >
</cc1:AutoCompleteExtender>
<asp:TextBox ID="txtEmployer" runat="server"></asp:TextBox></td>
<td style="width: 100px">
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Data
Imports System.Data.SqlClient
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
<System.Web.Script.Services.ScriptService()> _
Public Class WebService
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function GetCompleteList(ByVal prefixText As String, ByVal count As Integer) As String()
Dim strConn As String = System.Web.Configuration.WebConfigurationManager.ConnectionStrings("SqlDB").ToString
Dim conn As SqlConnection = New SqlConnection(strConn)
conn.Open()
Dim strsql As String = "select name_eng from Employee where Name_eng like '" + prefixText + "%' "
Dim da As SqlDataAdapter = New SqlDataAdapter(strsql, conn)
Dim ds As DataSet = New DataSet
da.Fill(ds, "employer")
Dim Name(ds.Tables(0).Rows.Count) As String
Dim i As Integer
For i = 0 To ds.Tables(0).Rows.Count - 1
Name(i) = ds.Tables(0).Rows(i)("Name_eng").ToString
Next
Return Name
End Function
End Class

浙公网安备 33010602011771号