开发者社区> 布雷泽> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用AutoCompleteExtender实现自动完成

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

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

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

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

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

代码如下:

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了,就这些代码,其实很简单,大家一起加油~    收工~~  晚安~


--

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Geany 代码自动补齐功能设置
Geany 代码自动补齐功能设置
0 0
VSCode 在保存时自动对代码进行修复
在设置中更改如下内容 // 自动修复 "tslint.autoFixOnSave": true
2270 0
表单自动完成
public function rest() { $q = $this->request->get('q'); $dicts = Db::name($this->table)->where('dvalue','like','%'.
656 0
Awesomplete - 零依赖的简单自动完成插件
  Awesomplete 是一款超轻量级的,可定制的,简单的自动完成插件,零依赖,使用现代化标准构建。你可以简单地添加 awesomplete 样式,让它自动处理(你仍然可以通过指定 HTML 属性配置更多选项),您可以用几行 JS 代码,提供更多的自定义。
568 0
VS2010-使用“预先生成事件命令行”和“后期生成事件命令行”功能
原文:VS2010-使用“预先生成事件命令行”和“后期生成事件命令行”功能 xcopy /r /y $(TargetPath) $(ProjectDir)..\Bin\ xcopy /r /y $(TargetDir)$(TargetName).
788 0
推荐一个代码自动完成的工具AutoCode
本文转载:http://www.cnblogs.com/xiaoxiangfeizi/archive/2012/07/24/2605884.html   最近发现了一个代码自动完成工具AutoCode,特别是在写实体的时候,非常有用,下面简单的介绍一下。
525 0
+关注
布雷泽
这个家伙很懒什么都没有留下。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载