<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="baidu_Default" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %><%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI" TagPrefix="asp" %><!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>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" BehaviorID="AutoCompleteEx" 
                TargetControlID="TextBox1"              
                ServicePath="AutoComplete.asmx"     
                ServiceMethod="GetCompletionList" 
                MinimumPrefixLength="1"                   
                EnableCaching="true"                         
                CompletionSetCount="20"                  
                CompletionListCssClass="autocomplete_completionListElement" 
                CompletionListItemCssClass="autocomplete_listItem" 
                CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
                DelimiterCharacters=";, :">
          <Animations>
                    <OnShow>
                        <Sequence>
                            <OpacityAction Opacity="0" />
                            <HideAction Visible="true" />
                            <ScriptAction Script="
                                // Cache the size and setup the initial size
                                var behavior = $find('AutoCompleteEx');
                                if (!behavior._height) {
                                    var target = behavior.get_completionList();
                                    behavior._height = target.offsetHeight - 2;
                                    target.style.height = '0px';
                                }" />
                            
                         
                            <Parallel Duration=".4">
                                <FadeIn />
                                <Length PropertyKey="height" StartValue="0" EndValueScript="$find('AutoCompleteEx')._height" />
                            </Parallel>
                        </Sequence>
                    </OnShow>
                    <OnHide>
                     
                        <Parallel Duration=".4">
                            <FadeOut />
                            <Length PropertyKey="height" StartValueScript="$find('AutoCompleteEx')._height" EndValue="0" />
                        </Parallel>
                    </OnHide>
                </Animations>        </cc1:AutoCompleteExtender>
    </div>
    </form>
</body>
</html>

解决方案 »

  1.   

    <%@ WebService Language="C#" Class="AutoComplete" %>
    namespace BaiJie.Web
    {
        using System;
        using System.Collections;
        using System.Web;
        using System.Web.Services;
        using System.Web.Services.Protocols;
        using System.Configuration;
        using System.Data;
        using System.Collections.Generic;    /// <summary>
        ///AutoComplete 的摘要说明
        /// </summary>
        [System.Web.Script.Services.ScriptService]
        public class AutoComplete : System.Web.Services.WebService {        public AutoComplete () {            //如果使用设计的组件,请取消注释以下行 
                //InitializeComponent(); 
            }
            
            [WebMethod]
            public string[] GetCompletionList(string prefixText)
            {
                BJMsgInfo MsgInfo = new BJMsgInfo();
                MsgInfo.CompanyName = prefixText;
              // DataTable tbl =WebManager.List("select words from searchwords where words like '%"
               //    + prefixText + "%'");
                DataTable dt = WebManager.List(MsgInfo, "", "CompanyName", "&company%", "");
                
                List<string> items = new List<string>();
                foreach (DataRow dr in tbl.Rows)
                {
                    items.Add(dr["words"].ToString());
                }
                return items.ToArray();
            }    
        }
    }
      

  2.   

    风语者
    帮我看下
    我刚才测试没有效果
    DataTable tbl =WebManager.List("select words from searchwords where words like '%"
                 + prefixText + "%'");
    这个数据库
    是自己输入的吗?
      

  3.   


    AutoCompleteExtender控件可以帮你自动填写TextBox控件(在数据库中查找).
    属性:
    TarGetControlID:指定要让"自动输入完成"扩展器要扩展的TextBox控件ID.
    ServicePath:Web服务的位置路径.
    ServiceMehod:要调用的Web服务的方法名.方法签名如下:[System.Web.Services.WebMethod]
    [System.Web.Script.Service.ScriptMethod]
    public string[] GetCompetionList(string prefixText,int count){......}
    前台代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <div>
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="TextBox1"
                 MinimumPrefixLength="1" ServiceMethod="GetProductName" ServicePath="WebService.asmx">
                </cc1:AutoCompleteExtender>
            </div>
        </form>
    </body>
    </html>
    WebService代码:using System;
    using System.Web;
    using System.Collections;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Data;
    using System.Data.SqlClient;
    using System.Web.Script.Services;//关键程序集引用
    using System.Collections.Generic;//关键程序集引用/// <summary>
    /// WebService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ScriptService()]//一定要添加
    public class WebService : System.Web.Services.WebService {    public WebService () {        //如果使用设计的组件,请取消注释以下行 
            //InitializeComponent(); 
        }    [WebMethod]
        [ScriptMethod]
        public string[] GetProductName(string prefixText, int count)
        {
            List<string> suggestions=new List<string>();//声明一泛型集合
            SqlConnection con = new SqlConnection("server=.;database=NorthWind;uid=sa;pwd=;");
            con.Open();
            SqlCommand com = new SqlCommand("select distinct productname from Products where productname like @prefixname order by productname", con);
            com.Parameters.Add("@prefixname",SqlDbType.NVarChar).Value=prefixText + "%";
            SqlDataReader sdr = com.ExecuteReader();
            while (sdr.Read())
            {
                suggestions.Add(sdr.GetString(0));
            }
             sdr.close();
            con.close();
            return suggestions.ToArray();
        }
    }
      

  4.   

    注意:需要导入包AjaxControlToolkit
      

  5.   

    这个需要你执行一个webservice然后你自己添加就行。你得文件根目录里面就有那个文件,然后你点在浏览器中查看,就知道怎么做了
      

  6.   

    当你在textbox里输入内容,就会自动搜索数据表中的内容,如果有相关的信息,就会下拉显示在textbox下面。要有相关数据库和表,即是自动搜索数据库的内容,把结果集显示出来。
      

  7.   


    AjaxControlToolkit安装&下载
    以下是收集关于AjaxControlToolkit安装的一篇文章,感谢原作者AjaxControlToolkit下载http://ajax.asp.net/downloads/default.aspx?tabid=47http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=1425
    环境设置如下:下载完 ASPAJAXExtSetup.msi 安装更新后在你的系统盘下的(以C盘为例) 出现这个 文件夹:C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 ajax Extensions\v1.0.61025安装这个后我们就可以创建Asp.net AJAXEnabledWebSite站点了,这其实就是个ajax.net网站的模板。但是我们现在还不能使用微软给我们开发好的ajax控件 。要想知道怎么使用ajax.net控件往下看。下载AjaxControlToolkit ,上面两个一个是带源代码的 一个是不带源代码的toolkit。建议下载带源代码的 toolkit。下载完成后把该文件解压到:C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 ajax Extensions\v1.0.61025\AjaxContronlToolkit\ 双击运行AjaxControlToolkit.sln。用vs2005打开这个sln,编译TemplateVSI这个项目后,把在C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 AJAX Extensions\SampleWebSite\Bin下面生成的AjaxControlToolkit.dll和AjaxControlToolkit.pdb复制到C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 AJAX Extensions\Binaries文件夹下面,这样我们就可以在vs2005中使用ajax.net这些控件了。新建一个Ajax ControlToolkitWebSite 类型的web项目。在工具栏中新添加一个选项卡起名:AjaxControltoolkit在这个选项卡上右键选择项->浏览找到刚才复制过去的AjaxControlToolkit.dll,添加进来。这样我们就ajax.net控件成功引用到vs2005中了 。
      

  8.   

    ServicePath="WebService.asmx"指定webservice的路径把WebService代码写在同一目录 的WebService.asmx这个页面懂了这个例子就就基本知道WebService是什么东西了
      

  9.   

    首先要安装ASP.NET AJAX 再引入AjaxControlToolkit.dll把环境设置好查询的表要有相关内容才会显示到下拉菜单里
      

  10.   

    类似百度Google的搜索
      

  11.   

    呵呵,绑定,个人感觉没必要这么麻烦的 只是个简单的ajax + 后台的模糊搜索
      

  12.   

    http://www.cnblogs.com/cntlis/archive/2009/03/17/1412144.html
      

  13.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="baidu_Default" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %><%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        Namespace="System.Web.UI" TagPrefix="asp" %><!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>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>        <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" ServiceMethod="GetCompletionList" ServicePath="AutoComplete.asmx" TargetControlID="TextBox1" CompletionSetCount="10">
                </cc1:AutoCompleteExtender> 
            </ContentTemplate>
            </asp:UpdatePanel>
        
        </div>
        </form>
    </body>
    </html>
      

  14.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="baidu_Default" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %><%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        Namespace="System.Web.UI" TagPrefix="asp" %><!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>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>        <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" ServiceMethod="GetCompletionList" ServicePath="AutoComplete.asmx" TargetControlID="TextBox1" CompletionSetCount="10">
                </cc1:AutoCompleteExtender> 
            </ContentTemplate>
            </asp:UpdatePanel>
        
        </div>
        </form>
    </body>
    </html>
      

  15.   

    发了2次汗<%@ WebService Language="C#" Class="AutoComplete" %>
    namespace BaiJie.Web
    {
        using System;
        using System.Collections;
        using System.Web;
        using System.Web.Services;
        using System.Web.Services.Protocols;
        using System.Configuration;
        using System.Data;
        using System.Collections.Generic;    /// <summary>
        ///AutoComplete 的摘要说明
        /// </summary>
        [System.Web.Script.Services.ScriptService]
        public class AutoComplete : System.Web.Services.WebService {        public AutoComplete () {            //如果使用设计的组件,请取消注释以下行 
                //InitializeComponent(); 
            }
            
            [WebMethod]
            public string[] GetCompletionList(string prefixText)
            {
                BJMsgInfo MsgInfo = new BJMsgInfo();
                MsgInfo.CompanyName = prefixText;
                DataTable dt = WebManager.List(MsgInfo, "", "CompanyName", "&companyname%", "");
                
                List<string> items = new List<string>();
                foreach (DataRow dr in dt.Rows)
                {
                    items.Add(dr["CompanyName"].ToString());
                }
                return items.ToArray();
            }    
        }
    }
      

  16.   

    必须要有一个数据集给他查询,用SQL查询或者构造一个table也行,你把SQL语句都去掉了,叫它怎么查啊?
    参考六楼的例子
      

  17.   

       MsgInfo.CompanyName = prefixText;
                DataTable dt = WebManager.List(MsgInfo, "", "CompanyName", "&companyname%", "");我的这个段代码就是的啊
    根据传过来的prefixText
    "&companyname%模糊查询然后返回一个DataTable
      

  18.   

    先把数据add到泛型列表里面,然后return这个数据集。你response.write 看看items[i] 里面有没有填充到数据?
      

  19.   

    WebManager.List(MsgInfo, "", "CompanyName", "&companyname%", "");这个方法有没有执行模糊查询?里面是执行SQL还是获取数组数据?把WebManager.List的方法在哪里?
      

  20.   

    <%@ WebService Language="C#" Class="AutoComplete" %>    using System;
        using System.Collections;
        using System.Web;
        using System.Web.Services;
        using System.Web.Services.Protocols;
        using System.Configuration;
        using System.Data;
        using System.Collections.Generic;
        using System.Data.SqlClient;
        /// <summary>
        ///AutoComplete 的摘要说明
        /// </summary>
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.Web.Script.Services.ScriptService()]//一定要添加
        [WebService(Namespace = "http://tempuri.org/")]    //[WebService(Namespace = "http://localhost:2459/ZYT/baidu/AutoComplete.asmx")]
        public class AutoComplete : System.Web.Services.WebService {        public AutoComplete () {            //如果使用设计的组件,请取消注释以下行 
                //InitializeComponent(); 
            }        [WebMethod]
            [System.Web.Script.Services.ScriptMethod]
            public string[] GetCompletionList(string prefixText)
            {
                List<string> suggestions = new List<string>();//声明一泛型集合
                SqlConnection con = new SqlConnection(@"Data Source=ZZWLINE\SQLEXPRESS;Initial Catalog=F:\我的单子\200904\项目\ZYT\APP_DATA\BJYZT.MDF;Integrated Security=True;");
                con.Open();
                SqlCommand com = new SqlCommand("select distinct CompanyName from BJMsgInfo where CompanyName like @prefixname order by CompanyName", con);
                com.Parameters.Add("@prefixname", SqlDbType.NVarChar).Value = prefixText + "%";
                SqlDataReader sdr = com.ExecuteReader();
                while (sdr.Read())
                {
                    suggestions.Add(sdr.GetString(0));
                }
                sdr.Close();
                con.Close();
                return suggestions.ToArray();
            }            }
      

  21.   

    <%@ Page Language="C#" AutoEventWireup="true" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %><%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        Namespace="System.Web.UI" TagPrefix="asp" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"></script><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
         
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" ServiceMethod="GetCompletionList" ServicePath="http://localhost:2459/ZYT/baidu/AutoComplete.asmx" TargetControlID="TextBox1" MinimumPrefixLength="1">
                </cc1:AutoCompleteExtender>
          
        </div>
        </form>
    </body>
    </html>
      

  22.   

    把WEBSERVICE 的NAMESPACE 去掉
      

  23.   


        [System.Web.Script.Services.ScriptService()]//一定要添加    public class AutoComplete : System.Web.Services.WebService {        public AutoComplete () {            //如果使用设计的组件,请取消注释以下行 
                //InitializeComponent(); 
            }        [WebMethod]
            public string[] GetCompletionList(string prefixText)