【发布时间】:2014-02-17 07:58:29
【问题描述】:
我希望进行自动完成搜索输入,当用户选择一个项目时,他会被重定向到网络上的某个页面。 我有一个包含名称和网址的数据库。到目前为止,我已经设法从数据库中获取名称,并且自动完成功能确实有效。问题是,我不知道如何在选择事件与名称的特定 Url 之间建立联系。
我正在使用 asp.net:
我的 .ASHX 文件:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/javascript";
string cnString = "cnnstringlocation";
string sql = "SELECT Name FROM [Table] WHERE Name LIKE '%'+@term+'%' ";
SqlCommand cmd = new SqlCommand(sql, new SqlConnection(cnString));
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@term", context.Request.QueryString["term"]);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
string[] items = new string[dt.Rows.Count];
int ctr = 0;
foreach (DataRow row in dt.Rows)
{
items[ctr] = (string)row["Name"];
ctr++;
}
context.Response.Write(new JavaScriptSerializer().Serialize(items));
}
还有自动完成查询(这很简单,我已经尝试过几次弄乱数据库并更改源,所以我也可以访问 URL,但没有任何运气)
$('#tags').autocomplete({
source: 'Autocomplete.ashx'
});
我对 jQuery 很陌生,但我知道源代码不仅应该包含代表名称的字符串,还应该包含每个名称的 Urls。我在任何地方都找不到正确的语法。 编辑:我想我可以制作另一个 .ASHX 文件,该文件将触发 onselect,然后返回所需的特定 URL。这是一个正确的方法吗?有没有更简单的方法? 感谢您对此事的任何了解。
【问题讨论】: