Ajax:AutoCompleteExtender自动输入完成(转载)

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/398446http://jialeifei.blog.163.com/blog/static/22190126200911810431891/

转载于:https://www.cnblogs.com/purplefox2008/archive/2009/12/13/1623275.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值