使用AutoCompleteExtender实现自动完成

简介: 自动完成也不是什么新技术了,在一些较好的网站上都能看到其应用,下面就把代码贴出来(仅限跟我同一级别的菜鸟观看……老鸟请路过……)需要一个WebService 我也懒得改名子,就直接叫WebService.

自动完成也不是什么新技术了,在一些较好的网站上都能看到其应用,下面就把代码贴出来(仅限跟我同一级别的菜鸟观看……老鸟请路过……

需要一个WebService 我也懒得改名子,就直接叫WebService.asmx; 为什么要用WebService?  其实我也不太清楚,只知道AutoCompleteExtender需要三个最为关键的属性:

  1. ServicePath="WebService.asmx" 
  2. ServiceMethod="GetWordList"
  3. TargetControlID="txtText"

如果知道这三个属性的话,也许就清楚为什么要用WebService了,ServicePath:就是WebService的路径,ServiceMethod:WebService中的方法名称,TargetControlID就是要对哪个控件实现自动完成效果(说的有点不清楚,但明白是什么意思就行了);

代码如下:

img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
using  System;
using  System.Web.Services;
using  System.Data;
using  System.Data.SqlClient;
using  CommonUtility;


namespace  GridView入库单管理
{
    
///   <summary>
    
///  WebService 的摘要说明
    
///   </summary>
    [WebService(Namespace  =   " http://tempuri.org/ " )]
    [WebServiceBinding(ConformsTo 
=  WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(
false )]
    
//  若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
    [System.Web.Script.Services.ScriptService]
    
public   class  WebService : System.Web.Services.WebService
    {
        [WebMethod]
        
public  String[] GetWordList( string  prefixText,  int  count)
        {
            
string  sql  =   string .Format( " select top {0} * from InBill where saleName like '% "   +  @prefixText  +   " %' " , @count);

            SqlParameter[] paras 
=   new  SqlParameter[]
            {
                
new  SqlParameter( " @prefixText " ,prefixText),
                 
new  SqlParameter( " @count " ,count)
            };

            DataTable table 
=  SQLHelper.GetDateSet(sql, CommandType.Text, paras);
            
string [] arr  =   new   string [table.Rows.Count];
            
if  (table  !=   null )
            {
                
for  ( int  i  =   0 ; i  <  table.Rows.Count; i ++ )
                {
                    arr[i] 
=  table.Rows[i][ " saleName " ].ToString();
                }
            }
            
return  arr;
        }
    }
}

SQL语句:在声名方法的时候,Count就是为了这个时候用的,AutoCompleteExtender 中加上CompletionSetCount="5" 的时候, 就有用了,它是什么意思?  他就是自动完成的时候,显示多少条数据用的,如果不写,默认是10;也就是说,下拉列表中会出现10条数据;如果定义完以后,在这里就可以将Count传进去了;

string sql = string.Format("select top {0} * from InBill where saleName like '%" + @prefixText + "%'", @count);

 

string[] arr = new string[table.Rows.Count];  //定义一个字符串类型的数组,让他的长度等于我们查出来的table的行数;紧接着就要遍历table,把每行的数据都填充到数组中去;

 

 arr[i] = table.Rows[i]["saleName"].ToString();  saleName是数据库中的字段名,你这里绑定的是哪个字段,自动完成的时候就会显示哪个字段的值;

 

Aspx页面代码片段:

    < asp:ScriptManager ID = " ScriptManager1 "  runat = " server "   />
        
< asp:AutoCompleteExtender ID = " AutoCompleteExtender1 "  runat = " server "  MinimumPrefixLength = " 1 "
            CompletionInterval
= " 500 "  EnableCaching = " false "  ServiceMethod = " GetWordList "  ServicePath = " WebService.asmx "
            TargetControlID
= " txtText "  CompletionSetCount = " 5 "   />
        
< asp:TextBox ID = " txtText "  runat = " server " ></ asp:TextBox >

首先需要一个ScriptManager,这个是必须的,下面解释一下AutoCompleteExtender中各个属性的意思;

 

MinimumPrefixLength :  就是最小输入几个字符的时候弹出自动完成;

CompletionInterval:自动完成时间间隔;

EnableCaching:是否启用缓存;

ServiceMethod:WebService中的方法名称;

ServicePath:WebService路径;

TargetControlID:绑定的控件;

CompletionSetCount:显示自动完成的行数;

OK了,就这些代码,其实很简单,大家一起加油~    收工~~  晚安~


--
目录
相关文章
|
8月前
|
Shell 测试技术
Airtest如何自动连接重启后的设备并继续执行自动化脚本呢?
Airtest如何自动连接重启后的设备并继续执行自动化脚本呢?
211 0
|
7月前
|
Ubuntu 关系型数据库 MySQL
expect自动交互脚本:简化你的自动化任务
`expect` 是Linux自动化神器,用于模拟键盘输入与交互式应用自动交互,常用于自动登录服务器、执行命令。安装 `expect`(CentOS: `yum -y install tcl expect`, Ubuntu: `apt-get -y install expect`) 后,编写脚本如SSH登录示例,自动发送密码和命令。通过结合shell命令,`expect` 可实现复杂任务,如获取IP、登录MySQL。支持多服务器管理,根据用户输入选择登录。学习 `expect` 提升自动化效率!
420 0
|
8月前
|
前端开发
基于jeecgboot的flowable流程增加节点自动跳过功能
基于jeecgboot的flowable流程增加节点自动跳过功能
545 2
|
程序员 API 开发者
自动化脚本如何编写?打算写个自动发布文章的脚本教程
作为一名程序员/开发者,我们经常需要处理重复性的任务,比如发布文章到多个媒体平台。为了提高效率,我们可以编写自动化脚本来完成这些任务。本文将介绍如何使用万媒易发多平台内容同步助手来自动发布文章。
|
JavaScript 前端开发 数据可视化
自动调试自动编译五分钟上手
自动调试自动编译五分钟上手
59 0
VSCode快捷开发必备配置——配置用户代码片段
VSCode快捷开发必备配置——配置用户代码片段
253 0
|
安全 小程序 数据可视化
要不要方便前先了解下公厕环境?
现在厕所都长这样了?会自洁,会说话,还会赚钱?!看视频里的小姐姐一顿神操作!
336 12
要不要方便前先了解下公厕环境?
|
搜索推荐 Java 编译器
安装编译器之后使用前的准备工作(常见配置、了解并在过程中不断熟悉常用的快捷键、导入和导出项目)
安装编译器之后使用前的准备工作(常见配置、了解并在过程中不断熟悉常用的快捷键、导入和导出项目)
325 0
安装编译器之后使用前的准备工作(常见配置、了解并在过程中不断熟悉常用的快捷键、导入和导出项目)
VSCode 在保存时自动对代码进行修复
在设置中更改如下内容 // 自动修复 "tslint.autoFixOnSave": true
3334 0