AutoComplete控件的作用是根据用户在文本框输入的字符而做出相应的提示效果。
例如GOOGLE搜索提示功能。
属性列表:
TargetControlID:要实现提示功能的控件
ServicePath:WEB服务的路径
ServiceMethod:调用数据使用的方法
CompletionSetCount:提示数据的行数
MinimumPrefixLength:用户输入多少字母才出现提示效果
CompletionInterval:从服务器获取数据的时间间隔,单位为毫秒
Enabled:是否启用自动完成功能,默认为TRUE
EnableCaching:是否启用缓存
实例解析一、读取数据库实现自动完成功能
autocomplete表:ID,NAME两个字段。
Default.aspx代码如下:
<
head
runat
="server"
>
< title > AutoComplete的使用 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:ScriptManager ID ="ScriptManager1" runat ="server" >
</ asp:ScriptManager >
</ div >
< asp:TextBox ID ="TextBox1" runat ="server" ></ asp:TextBox >
< cc1:AutoCompleteExtender ID ="AutoCompleteExtender1" runat ="server" TargetControlID ="TextBox1" ServicePath ="WebServiceAutoComplete.asmx" ServiceMethod ="GetCompleteDepart" CompletionSetCount ="2" MinimumPrefixLength ="1"
CompletionInterval ="1000" >
</ cc1:AutoCompleteExtender >
</ form >
</ body >
< title > AutoComplete的使用 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:ScriptManager ID ="ScriptManager1" runat ="server" >
</ asp:ScriptManager >
</ div >
< asp:TextBox ID ="TextBox1" runat ="server" ></ asp:TextBox >
< cc1:AutoCompleteExtender ID ="AutoCompleteExtender1" runat ="server" TargetControlID ="TextBox1" ServicePath ="WebServiceAutoComplete.asmx" ServiceMethod ="GetCompleteDepart" CompletionSetCount ="2" MinimumPrefixLength ="1"
CompletionInterval ="1000" >
</ cc1:AutoCompleteExtender >
</ form >
</ body >
WebServiceAutoComplete.asmx.cs文件代码如下:
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.Configuration;
..
..
[System.Web.Script.Services.ScriptService]
public class WebServiceAutoComplete : System.Web.Services.WebService {
..
..
//定义数组
private static string[] autoCompleteWordList = null;
[WebMethod]
public string[] GetCompleteDepart(string prefixText, int count)
{
//如果数组为空
if (autoCompleteWordList == null)
{
DAL.DB DBOperator = new DAL.DB();
DataSet ds = DBOperator.GetDs("select name from autocomplete where name like '"+prefixText+"%' order by name");
//填充数组
string[] temp=new string[ds.Tables[0].Rows.Count];
int i = 0;
foreach (DataRow dr in ds.Tables[0].Rows)
{
temp[i] = dr["name"].ToString();
i++;
}
//将临时数组的内容赋给返回数组
autoCompleteWordList = temp;
}
string[] returnValue = new string[count];
returnValue = autoCompleteWordList;
//返回
return returnValue;
}
}
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
..
..
[System.Web.Script.Services.ScriptService]
public class WebServiceAutoComplete : System.Web.Services.WebService {
..
..
//定义数组
private static string[] autoCompleteWordList = null;
[WebMethod]
public string[] GetCompleteDepart(string prefixText, int count)
{
//如果数组为空
if (autoCompleteWordList == null)
{
DAL.DB DBOperator = new DAL.DB();
DataSet ds = DBOperator.GetDs("select name from autocomplete where name like '"+prefixText+"%' order by name");
//填充数组
string[] temp=new string[ds.Tables[0].Rows.Count];
int i = 0;
foreach (DataRow dr in ds.Tables[0].Rows)
{
temp[i] = dr["name"].ToString();
i++;
}
//将临时数组的内容赋给返回数组
autoCompleteWordList = temp;
}
string[] returnValue = new string[count];
returnValue = autoCompleteWordList;
//返回
return returnValue;
}
}