Ajax:AutoCompleteExtender自動輸入完成

來源:互聯網
上載者:User
AutoCompleteExtender控制項可以幫你自動填寫TextBox控制項(在資料庫中尋找).   
屬性:   
TarGetControlID:指定要讓"自動輸入完成"擴充器要擴充的TextBox控制項ID.   
ServicePath:Web服務的位置路徑.   
ServiceMehod:要調用的Web服務的方法名.方法簽名如下:   
  
[System.Web.Services.WebMethod]   
[System.Web.Script.Service.ScriptMethod]   
public string[] GetCompetionList(string prefixText,int count){......}   
  
  
前台代碼:   
  
<%@ 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.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">   
        <asp:ScriptManager ID="ScriptManager1" runat="server" />   
        <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>   
    </form>   
</body>   
</html>   
  
WebService代碼:   
  
using System;   
using System.Web;   
using System.Collections;   
using System.Web.Services;   
using System.Web.Services.Protocols;   
using System.Data;   
using System.Data.SqlClient;   
using System.Web.Script.Services;//關鍵程式集引用   
using System.Collections.Generic;//關鍵程式集引用   
  
/// <summary>   
/// WebService 的摘要說明   
/// </summary>   
[WebService(Namespace = "http://tempuri.org/")]   
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]   
[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=.;database=NorthWind;uid=sa;pwd=;");   
        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();   
    }   
}  

 這個控制項還是比較有用的。我們使用搜尋引擎時,輸入幾個字元時,可以出來相關的文字提示,應該是Ajax的這種技術的應用吧。可以協助使用者快速挑選出針對TextBox自己要輸入的內容,減少輸入工作。

AutoCompleteExtender控制項的屬性:
   1.TargetControlID:指定將被輔助完成自動輸入的控制項ID,這裡的控制項只能是TextBox;
   2.ServicePath:指出提供服務的WEB服務路徑,若不指出則ServiceMethod表示本頁面對應的方法名;
   3.ServiceMethod:指出提供服務的方法名;
   4.MinimumPrefixLength:指出開始提供提示服務時,TextBox控制項應有的最小字元數,預設為3;
   5.CompletionSetCount:顯示的條數,預設為10;
   6.EnableCaching:是否在用戶端快取資料,預設為true;
   7.CompletionInterval:從伺服器讀取資料的時間間隔,預設為1000,單位:毫秒。

凡是為AutoCompleteExtender控制項提供服務的方法都必需完全滿足以下三個條件:
   A.方法的傳回型別必需為:string [];
   B.方法的傳入參數類型必需為:string  ,   int;
   C.兩個傳入參數名必需為:prefixText  ,  count。

本文轉載自:http://daweijsp.javaeye.com/blog/398446,http://jialeifei.blog.163.com/blog/static/22190126200911810431891/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.