AutoCompleteExtender控制項,固名思義就是可以輔助TextBox控制項自動輸入,實現如http://dict.yodao.com/這樣的效果。
AutoCompleteExtender控制項的屬性:
1.TargetControlID:指定將被輔助完成自動輸入的控制項ID,這裡的控制項只能是TextBox;
2.ServicePath:指出提供服務的WEB服務路徑,若不指出則ServiceMethod表示本頁面對應的方法名;
3.ServiceMethod:指出提供服務的方法名;
4.MinimumPrefixLength:指出開始提供提示服務時,TextBox控制項應有的最小字元數,預設為3;
5.CompletionSetCount:顯示的條數,預設為10;
6.EnableCaching:是否在用戶端快取資料,預設為true;
7.CompletionInterval:從伺服器讀取資料的時間間隔,預設為1000,單位:毫秒。
ASPX頁面代碼:
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1" />
<ajaxToolkit:AutoCompleteExtender
ID="AutoCompleteExtender1"
runat="server"
ServicePath="AutoComplete.asmx"
TargetControlID="TextBox1"
ServiceMethod="GetTextString">
</ajaxToolkit:AutoCompleteExtender>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</form>
</body>
WebServcie-AutoComplete.cs代碼:
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class AutoComplete : System.Web.Services.WebService {
public AutoComplete () {
}
[WebMethod]
public string[] GetTextString(string prefixText, int count)
{
string[] strArray = new string[count];
for (int i = 0; i < count; i++)
{
strArray[i] = prefixText + i.ToString();
}
return strArray;
}
}
在這裡需要注意以下幾點:
1.由於該WEB服務是為Ajax架構提供服務的,因此在類聲明之前得加上屬性聲明:
[System.Web.Script.Services.ScriptService]
2.特別需要注意的是GetTextString這個方法。凡是為AutoCompleteExtender控制項提供服務的方法都必需完全滿足以下三個條件:
A.方法的傳回型別必需為:string [];
B.方法的傳入參數類型必需為:string , int;
C.兩個傳入參數名必需為:prefixText , count。