搜索是根据输入给出相应的提示。(就像百度那样。不过功能不用那么强大)。
  要做这个功能,具体实现步骤是什么? (需要连接数据库的。)
   我用WebService,+AJAX .  出不来。
   哪位大虾看下哪出错了。
                
        WebService:
               public string[] GetHotSearchByKeyWords(string prefixText, int count)
        {            string connstr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\HighNight\Web\App_Data\HIGHNIGHT.mdf;Integrated Security=True;User Instance=True";
            SqlConnection conn = new SqlConnection(connstr);
            conn.Open();
            string sql = "select top " + count + "  GroggeryName  from Groggery where GroggeryName like '%" + prefixText + "%'";
            SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            conn.Close();
            List<string> list = new List<string>();
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                list.Add((string)row[0]);
            }
            return list.ToArray();        } 
页面:
         <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
         <div>请输入酒吧名称:<asp:TextBox ID="txtGroggeryName" runat="server"  BorderColor="#C8ECFF" 
                BorderStyle="Solid" BorderWidth="2px" Width="157px" 
                 ontextchanged="txtGroggeryName_TextChanged"></asp:TextBox>  
                  </div>
            <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
               TargetControlID="txtGroggeryName"
                MinimumPrefixLength="1"
                 ServiceMethod="GetHotSearchByKeyWords"
                 ServicePath="MyWebService.asmx"
                  EnableCaching="true"
                   CompletionSetCount="6">
             </cc1:AutoCompleteExtender>

解决方案 »

  1.   

    方法最好不要写在Webservice的code里面,是没反应还是报错?
      

  2.   

    调用的没错 方法也没看出什么错,你打断点直接运行Webservice程序,走一遍 看能不能返回一个XML 
      

  3.   


     可以得到 XML
      <?xml version="1.0" encoding="utf-8" ?> 
    - <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
      <string>王</string> 
      <string>王者</string> 
      <string>王者归来</string> 
      </ArrayOfString>
      

  4.   

    那就是你前台调用的时候出问题了 看看路径有问题不   试试去掉ontextchanged="txtGroggeryName_TextChanged"事件   
      

  5.   

    方法名称上面写上:[System.Web.Script.Services.ScriptService]
      

  6.   

    直接用Jquery的autocomplete  
      

  7.   


      // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
        // [System.Web.Script.Services.ScriptService]
      

  8.   

    namespace Web_UI
    {
        /// <summary>
        /// WebService1 的摘要说明
        /// </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 WebService1 : System.Web.Services.WebService
        {        [WebMethod]
            public string[] HelloWorld()
            {
                string[] strlist = {"aa","bb","cc","dd","ee" };
                return strlist;
            }
        }
    }<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>  //注册<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></asp:ToolkitScriptManager>     <div>
          请输入关键字:<asp:TextBox ID="txt_Name" runat="server"></asp:TextBox>
          </div>
            <asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"  ServiceMethod="HelloWorld" ServicePath="WebService1.asmx" MinimumPrefixLength="1" CompletionSetCount="6" EnableCaching="true"
            TargetControlID="txt_Name">
            </asp:AutoCompleteExtender>
      

  9.   

    嗯,就是这个,微软搞的,ASP.NET前台脚本访问的时候用。
      

  10.   

    在webservice方法中 取消注释 [System.Web.Script.Services.ScriptService]默认是注释的!!!