AutoCompleteExtender 自動(dòng)完成擴(kuò)展, 配合TextBox使用功能類(lèi)似現(xiàn)在google中輸入搜索字,則在TextBox下出來(lái)下拉框顯示搜索目標(biāo)中的項(xiàng)目
這個(gè)擴(kuò)展控件需要配合Web Service使用,所以涉及了點(diǎn)web Service的使用(這里只簡(jiǎn)單談下,等用熟了再仔細(xì)談下web service的內(nèi)容)
先介紹下AutoCompleteExtender的幾個(gè)關(guān)鍵屬性:
a,TargetControlID 這個(gè)屬性是所有AjaxControlToolkit的共同屬性,就是擴(kuò)展目標(biāo)控件ID(官方這么說(shuō)的吧)
b.CompletionSetCount 這個(gè)屬性是設(shè)置顯示下拉結(jié)果的條數(shù) 默認(rèn)為10吧
c.MinimumPrefixTextLength 這個(gè)屬性是設(shè)置輸入幾個(gè)字符的長(zhǎng)度后調(diào)用webService中的方法顯示下拉列表
d.ServicePath 這個(gè)屬性設(shè)置需要調(diào)用的web Service路徑
e.ServiceMethod 這個(gè)屬性設(shè)置需要調(diào)用的web Service中的方法(函數(shù))
f.EnableCaching:是否在客戶(hù)端緩存數(shù)據(jù),默認(rèn)為true
g.CompletionInterval:從服務(wù)器讀取數(shù)據(jù)的時(shí)間間隔,默認(rèn)為1000,單位:毫秒
注:如果習(xí)慣用可視控件設(shè)置屬性,則a屬性在AutoCompleteExtender中設(shè)置,其他屬性則設(shè)置了TargetControlId后,在相應(yīng)的TargetControl中會(huì)多出來(lái)個(gè)Extenders屬性中設(shè)置,如果習(xí)慣手寫(xiě)代碼,則在AutoCompleteExtender代碼屬性中設(shè)置。
例子: 1.新建一個(gè)頁(yè)面,加入ScriptManager控件 一個(gè)TextBox控件 一個(gè)AutoCompleteExtender控件
2.新建立一個(gè)webService,添加一個(gè)[WebMethod]方法
[WebMethod]
代碼如下:
public string[] GetString(string prefixText, int count){
System.Collections.Generic.List<string> list = new System.Collections.Generic.List<string>(count);
System.Data.DataSet ds = new System.Data.DataSet();
//這里是我在數(shù)據(jù)庫(kù)中取數(shù)據(jù)的代碼 其中SqlHelper類(lèi)是項(xiàng)目中的取數(shù)據(jù)基類(lèi)
//string strSql = string.Format("SELECT TOP {0} NAME FROM CengWei WHERE NAME LIKE '{1}%' ORDER BY NAME",count,prefixText);
//ds = SqlHelper.Query(strSql);
//for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
//{
// list.Add(ds.Tables[0].Rows[i][0].ToString());
//}
for (int i = 0; i < count; i++)
{
list.Add(prefixText+i.ToString());
}
return list.ToArray();
}
其中:必須在webService的類(lèi)上面添加
[System.Web.Script.Services.ScriptService]
示例代碼:webService是在數(shù)據(jù)庫(kù)中的一個(gè)字段中取數(shù)據(jù)
頁(yè)面代碼:
代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="test2" %>
<%@ Register Assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
<%@ 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">