我正在为朋友做一个小项目,任何帮助都会非常感谢您。
我有一个文本框,但我也可以使用 html 输入控件。
与 google bar 的想法相同,您可以在其中键入字母 a,这将返回与字母 a 匹配的任何描述。它会在 inut 控件下方显示匹配值,与 goodle 搜索栏相同。
任何关于如何执行此代码示例 C# 的想法都非常感谢。
我正在为朋友做一个小项目,任何帮助都会非常感谢您。
我有一个文本框,但我也可以使用 html 输入控件。
与 google bar 的想法相同,您可以在其中键入字母 a,这将返回与字母 a 匹配的任何描述。它会在 inut 控件下方显示匹配值,与 goodle 搜索栏相同。
任何关于如何执行此代码示例 C# 的想法都非常感谢。
您可以使用 jQuery 和 HTTP 处理程序
SQL:
为了举例,我创建了一个名为 Search 的本地数据库,它有一个包含两列 SearchId 和 Search 的表来存储一些虚拟搜索数据
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;}
}
}
}
输出:
我已将项目的压缩版本放在Google Drive上。希望这会有所帮助!