【发布时间】:2014-12-16 13:46:21
【问题描述】:
我正在尝试创建一个具有自动完成属性并使用处理程序的搜索框。 我从数据库中获得了所有单词,但无法显示它们。
这是 jquery 部分:
$(function () {
$("#search-box").autocomplete({
source: "KeywordHandler.ashx",
minLength: 1,
@*select: function (event, ui) {
alert(ui.item.id + " / " + ui.item.value);
}*@
});
});
这是处理程序部分:
public class KeywordHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string prefixText = context.Request.QueryString["term"];
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["DSN"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Keyword from [dbo].[Log] where " + "Keyword like @SearchText + '%'";
cmd.Parameters.AddWithValue("@SearchText", prefixText);
cmd.Connection = conn;
StringBuilder sb = new StringBuilder();
conn.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
sb.Append(sdr["Keyword"])
.Append(Environment.NewLine);
}
}
conn.Close();
context.Response.Write(sb.ToString());
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
在处理程序中,我可以获得所有我需要的单词,但无法在搜索框中将它们显示为提供的关键字。
有什么想法吗?
【问题讨论】:
-
看起来您没有以真实格式获取字符串。您是否尝试过使用 JSON?请检查您的函数的返回字符串。所以,你可以使用我的答案(解析 JSON)。
-
嗨乔希,也许你是对的,但我用另一种方式解决了。你可以在下面看到答案。感谢您的努力。
标签: javascript c# jquery autocomplete handler