大家好,我想做个搜索功能,像baidu那样当在搜索框中填入搜索词时,将数据库中相匹配的记录自动出现在列表框里,然后点击后自动填入搜索框中,请各位专家教教我,最好给出代码。

解决方案 »

  1.   

    请Google关键字autocomplete。我一般会使用jQuery的Autocomplete插件,http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
      

  2.   

    ajax, jQuery, javascript+隐藏div 都可实现
    原理类似,input 的 onkeyup \ onpropertychange 触发动态向服务器发送查询请求,div 模拟下拉列表
      

  3.   


    楼上已经具体给出实现方式 
    ajax + javascript + 隐藏div(div中放table)
    我有现成代码
      

  4.   

    支持1L的,autocomplete网上有一大堆
      

  5.   

    <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        Namespace="System.Web.UI" TagPrefix="asp" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> 
    <tr>
                                          <td align="left" valign="middle"><table border="0" cellpadding="0" cellspacing="0" class="k25">
                                              <tr>
                                                <td width="80" align="left" valign="middle"> 商家名称:</td>
                                                <td align="left" valign="middle">
                                                    <asp:TextBox ID="BJMsgInfo_CompanyName" runat="server" class="bk8"></asp:TextBox>
                                                  <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" ServicePath="baidu/AutoComplete.asmx" ServiceMethod="GetCompletionList" TargetControlID="BJMsgInfo_CompanyName" MinimumPrefixLength="1" EnableCaching="true">
                                                    </cc1:AutoCompleteExtender>   <%----%>          
                                           <%--     <input name="textfield24222" type="text" class="bk8" style="width:193px;" />--%>
                           
                           </td>
                                              </tr>
                                          </table></td>
                                        </tr>
      

  6.   

    <%@ WebService Language="C#" Class="WebService" %>
    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;[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.Web.Script.Services.ScriptService]
    public class WebService  : System.Web.Services.WebService {    [WebMethod]
        [System.Web.Script.Services.ScriptMethod]
        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();    }    
        
    }}
      

  7.   

    ajax, jQuery, javascript+隐藏div 都可实现
      

  8.   

    感谢大家的帮助,最后我用ajax实现了,我发现这里的牛人真多呀,希望以后继续得到大家的帮助。