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

 

posted @ 2008-08-13 12:11  ike_li  阅读(654)  评论(0)    收藏  举报