AutoCompleteExtender智能扩展实例

ajaxControlToolkit AutoCompleteExtender的用法
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,单位:毫秒
------------------------------------------------------------------------
1.新建一个页面,加入ScriptManager控件 一个TextBox控件 一个AutoCompleteExtender控件
2.新建立一个webService(AutoCompleteService.cs),添加一个[WebMethod]方法
[WebMethod]
[复制此代码]CODE:
/// <summary>
        /// 查询时文本框自动获取部门下拦列表
        /// </summary>
        /// <param name="prefixText"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        [WebMethod]
        public string[] GetDepartmentList(string prefixText, int count)
        {
            if (count == 0)
            {
                count = 10;
            }
            List<string> items = new List<string>(count);
            if (CommonPage.CheckSensitiveStr(prefixText))
            {//CheckSensitiveStr检查敏感字符
                IDepartmentDAL dal = DataAccess.CreateDepartmentDAL();
                string sql = "dwmc like '" + prefixText + "%'";
                DataTable dt = new DataTable();
                dt = dal.GetDepartmentByWhere(sql);
                foreach (DataRow dr in dt.Rows)
                {
                    items.Add(dr["dwmc"].ToString());
                }
                return items.ToArray();
            }
            else
            {
                return items.ToArray();
            }
        }
页面代码:
<td width ="135" ><asp:TextBox CssClass="textbox" ID="txtDwmc" runat="server"
                Width="128px" />
<ajaxToolkit:AutoCompleteExtender ID="autoComplete1" runat="server"
  BehaviorID="AutoCompleteEx" CompletionInterval="100"
  CompletionListCssClass="autocomplete_completionListElement"
  CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
  CompletionListItemCssClass="autocomplete_listItem" DelimiterCharacters=";, :"
  MinimumPrefixLength="1" ServiceMethod="GetDepartmentList"
  ServicePath="~/WebService/AutoCompleteService.asmx" TargetControlID="txtDwmc">
</ajaxToolkit:AutoCompleteExtender>
   --------------------------------------
参考资料:http://www.jb51.net/article/16320.htm 
posted @ 2009-03-16 13:39  Blue Sky ......  阅读(448)  评论(0编辑  收藏  举报