2013-01-19 64 views
1

我正在做一個小項目的朋友任何幫助將是偉大的提前謝謝你。你如何填充sql查詢結果在文本框或輸入控件,如谷歌搜索下拉結果

我有一個文本框但是我也可以使用html輸入控件。

與谷歌欄相同的想法,你可以鍵入一個字母a,它將返回與字母a相匹配的任何描述。它會顯示匹配的價值,作爲goodle搜索欄相同的inut控制下。

任何想法如何做到這一點的代碼示例C#將非常感謝你。

回答

2

你可以使用jQuery和HTTP處理程序

  1. 下載jQuery(如果你還沒有擁有它)
  2. 下載autocomplete.js
  3. 下載jquery.autocomplete.css
  4. 將文件複製到您的項目。礦在子文件夾中稱爲腳本和樣式

SQL:

因爲我已經創建了一個本地數據庫名爲Search其中有一個表有兩列SearchId和搜索存儲一些虛擬搜索數據

ASPX例子來說:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Auto complete</title> 
    <script src="Scripts/jquery-1.7.1.js" type="text/javascript"></script> 
    <link href="Style/jquery.autocomplete.css" rel="stylesheet" type="text/css" /> 
    <script src="Scripts/jquery.autocomplete.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#txtSearch").autocomplete("Autocomplete.ashx"); 
     }); 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <input id="txtSearch" type="text" /> 
    </div> 
    </form> 
</body> 
</html> 

Autocomplete.ashx處理程序:

using System; 
using System.Data.SqlClient; 
using System.Web; 

namespace WebApplication17 
{ 
    public class Autocomplete : IHttpHandler 
    { 
     public void ProcessRequest(HttpContext context) 
     { 
      string connectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["connection"].ConnectionString; 
      string input = context.Request.QueryString["q"]; 
      string query = "SELECT TOP 10 Search FROM Search WHERE Search LIKE '" + input + "%'"; 

      using (var conn = new SqlConnection(connectionString)) 
      { 
       using (var command = new SqlCommand(query,conn)) 
       { 
        conn.Open(); 
        using (SqlDataReader reader = command.ExecuteReader()) 
        { 
         while (reader.Read()) 
          context.Response.Write(reader.GetString(0) + Environment.NewLine); 
        } 
       } 
      } 
     } 

     public bool IsReusable 
     { 
      get{return false;} 
     } 
    } 
} 

輸出:

enter image description here

我放在項目的壓縮版本上Google Drive。希望這會有所幫助!

+0

謝謝你會幫助很多:) – Neo