我以前发表过一篇《通用的自动完成功能 -Ajax + asp.net》,读者反映也比较多,很多朋友都问我要源码,但是由于整理硬盘一不小心把源码删除了,现在我也没有了。

       不过以前使用的方法是采用js异步请求,再通过处理服务器返回的XML流,那样的好处是可以应用于任何开发语言,只要对相应的页面做一些修改即可,但是调 试起来并不太方便,有时候运行起来没看到错误提示,却得不到正确的结果。不过如果你要使用asp.net 2.0以上的版本来开发这个功能的话,可以使用Ajax Control Toolkit中的AutoCompleteExtender控件,非常简单就可以实现。

       首先先概括一下该功能必须的几个要点:
       1、先确认你的开发环境是否支持ajax;
       2、建立实例数据库。
       3、建立一个Webservices,用于自动完成调用使用。

       新建一个项目(我使用的是VS2008,不过VS2005基本上也是同样的使用,如果还不清楚VS2005的Ajax环境配置的请参考相关资料),在新建 的页面中加入一个TextBox和一个AutoCompleteExtender控件,当然要确保页面中form后面紧跟着一个 ScriptManager控件,这是每个asp.net Ajax页面必须的。页面内容如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Kevin.Web.Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Ajax AutoComplete</title>
    <style type="text/css">
    .autocomplete_completionListElement
{
visibility : hidden;
margin : 0px!important;
background-color : inherit;
color : windowtext;
border : buttonshadow;
border-width : 1px;
border-style : solid;
cursor : 'default';
overflow : auto;
height : 200px;
    text-align : left;
    list-style-type : none;
}

/* AutoComplete highlighted item */

.autocomplete_highlightedListItem
{
background-color: #ffff99;
color: black;
padding: 1px;
}

/* AutoComplete item */

.autocomplete_listItem
{
background-color : window;
color : windowtext;
padding : 1px;
}
    </style>
</head>
<body>
    <form >

相关文章: