zoukankan      html  css  js  c++  java
  • 关于不使用web服务实现文本框自动完成扩展

    来博客园很久了,一直是伸手党,呵呵,现在终于申请了一个账号并开通了博客

    下面分享下之前在一个项目里遇到的问题

    前段时间在一个项目里要求在文本框内输入要搜索的内容,自动提示与此内容相关的词条

    当时在博客园里看到了(http://www.cnblogs.com/insus/archive/2013/03/28/2986217.html)这篇文章觉得挺好,我也就按照这样的方法去做了

    在逻辑层我写两个一个类,去跟数据层交互

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Data;
     4 using System.Linq;
     5 using System.Web;
     6 using Bthinking.PlatForm.SystemManage.BLL;
     7 using Bthinking.PlatForm.SystemManage.Model;
     8 
     9 
    10 /// <summary>
    11 ///ActiveDirectoryInfo 的摘要说明
    12 /// </summary>
    13 public class ActiveDirectoryInfo
    14 {
    15     Dim_RessellorInfoBLL bll_RessellorInfo = new Dim_RessellorInfoBLL();
    16     public ActiveDirectoryInfo()
    17     {
    18         //
    19         //TODO: 在此处添加构造函数逻辑
    20         //
    21     }
    22     public DataTable GetDisplayName(string prefixText,int count)
    23     {
    24         Dim_RessellorInfoParameters para_RessellorInfo = new Dim_RessellorInfoParameters();
    25         para_RessellorInfo.RessellorName = prefixText;
    26         Dim_RessellorInfoCollection ressellorCollection = new Dim_RessellorInfoCollection();
    27         ressellorCollection = bll_RessellorInfo.GetAllDim_RessellorInfos(para_RessellorInfo,1,count);
    28         DataTable ret = new DataTable();
    29         ret = ressellorCollection.ToDataTable();
    30         return ret;
    31     }
    32 
    33     public int GetDisplayCount(string prefixText, int count)
    34     {
    35         Dim_RessellorInfoParameters para_RessellorInfo = new Dim_RessellorInfoParameters();
    36         para_RessellorInfo.RessellorName = prefixText;
    37         count = bll_RessellorInfo.GetRecordCount(para_RessellorInfo);
    38         return count;
    39     }
    40 }
    BLL

    把一下代码拉至aspx页面

     <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager" runat="server"></ajaxToolkit:ToolkitScriptManager>

    在对应控件出引入如下代码

    <asp:TextBox ID="TxtRessellorName" runat="server" Height="21px" Width="188px"></asp:TextBox>
    <ajaxToolkit:AutoCompleteExtender 
    ID="AutoCompleteExtender1" runat="server" MinimumPrefixLength = "1"
    CompletionInterval = "1000" EnableCaching ="true" CompletionSetCount = "10" TargetControlID="TxtRessellorName" ServiceMethod="GetDisplayUserName"> </ajaxToolkit:AutoCompleteExtender>
    这里的ServiceMethod="GetDisplayUserName"对应CS中的方法 红色的部分必须添加
     1    [System.Web.Services.WebMethod]
     2     [System.Web.Script.Services.ScriptMethod]
     3     public static string[] GetDisplayUserName(string prefixText, int count)
     4     {
     5         ActiveDirectoryInfo objActiveDirectoryInfo = new ActiveDirectoryInfo();
     6         count = objActiveDirectoryInfo.GetDisplayCount(prefixText, count);
     7         DataTable dt = objActiveDirectoryInfo.GetDisplayName(prefixText, count);
     8         string[] strArray = new string[count];
     9         int i = 0;
    10         foreach (DataRow dataRow in dt.Rows)
    11         {
    12             //array.Add(dataRow["RessellorName"].ToString());
    13             strArray[i] = dataRow["RessellorName"].ToString();
    14             i++;
    15         }
    16 
    17         //return (string[])array.ToArray(typeof(string));
    18         return strArray;
    19     }
    20 }

    效果如下

    总体来说,效果还是不错的,但是对于大数据量的词条筛选可能就显得有点鸡肋了

     
  • 相关阅读:
    Nginx使用教程(八):使用Nginx缓存之Memcached缓存
    Nginx使用教程(七):使用Nginx缓存之proxy cache
    Nginx使用教程(六):使用Nginx缓存之FastCGI缓存
    Nginx使用教程(五):使用Nginx缓存之缓存静态内容
    Nginx使用教程(四):提高Nginx网络吞吐量之buffers优化
    Nginx使用教程(三):Nginx配置性能优化之I/O和TCP配置
    Nginx使用教程(二):Nginx配置性能优化之worker配置
    添加Nginx为系统服务(设置开机启动)
    Nginx主程序使用介绍
    北美IT求职攻略
  • 原文地址:https://www.cnblogs.com/hEnius/p/2013-07-01.html
Copyright © 2011-2022 走看看