AutoCompleteExtender 自动完成扩展, 配合TextBox使用功能类似现在google中输入搜索字,则在TextBox下出来下拉框显示搜索目标中的项目 这个扩展控件需要配合Web Service使用,所以涉及了点web Service的使用(这里只简单谈下,等用熟了再仔细谈下web service的内容) 先介绍下AutoCompleteExtender的几个关键属性: a,TargetControlID 这个属性是所有AjaxControlToolkit的共同属性,就是扩展目标控件ID(官方这么说的吧) b.CompletionSetCount 这个属性是设置显示下拉结果的条数 默认为10吧 c.MinimumPrefixTextLength 这个属性是设置输入几个字符的长度后调用webService中的方法显示下拉列表 d.ServicePath 这个属性设置需要调用的web Service路径 e.ServiceMethod 这个属性设置需要调用的web Service中的方法(函数) f.EnableCaching:是否在客户端缓存数据,默认为true g.CompletionInterval:从服务器读取数据的时间间隔,默认为1000,单位:毫秒 注:如果习惯用可视控件设置属性,则a属性在AutoCompleteExtender中设置,其他属性则设置了TargetControlId后,在相应的TargetControl中会多出来个Extenders属性中设置,如果习惯手写代码,则在AutoCompleteExtender代码属性中设置。 例子: 1.新建一个页面,加入ScriptManager控件 一个TextBox控件 一个AutoCompleteExtender控件 2.新建立一个webService,添加一个[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(); //这里是我在数据库中取数据的代码 其中SqlHelper类是项目中的取数据基类 //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的类上面添加 [System.Web.Script.Services.ScriptService] 示例代码:webService是在数据库中的一个字段中取数据 页面代码: 复制代码 代码如下:<%@ 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"> <head runat="server"> <title>DropDownExtender简单练习</title> <link href="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer3/css/default.css" rel="stylesheet" type="text/css" /> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="True" EnableScriptLocalization="True"> </asp:ScriptManager> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox> <cc1:AutoCompleteExtender ID="AutoCompleteExtender2" runat="server" MinimumPrefixLength="1" ServiceMethod="GetString" ServicePath="AutoComplete.asmx" TargetControlID="TextBox2"> </cc1:AutoCompleteExtender> </form> </body> </html> webService代码: using System; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; /// <summary> /// AutoComplete 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] //下面是必须的,否则功能无法实现 [System.Web.Script.Services.ScriptService] public class AutoComplete : System.Web.Services.WebService { public AutoComplete () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string HelloWorld() { return "Hello World"; } [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(); //这里是我在数据库中取数据的代码 其中SqlHelper类是项目中的取数据基类 //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(); } } 有哪里不对的地方还请大家指教
推荐阅读
js身份证验证超强脚本
function checkIdcard(idcard){ var Errors=new Array( "验证通过!", "身份证号码位数不对!", "身份证号码出生日期超出范围或含有非法字符!", "身份证号码校验错误!", "身份证地区非法!" ); var area={11:"北京",1>>>详细阅读
本文标题:ajaxControlToolkit AutoCompleteExtender的用法
地址:http://www.17bianji.com/kaifa2/JS/29278.html
1/2 1