我正在玩弄 jQuery 1.8-UI 中的新自动完成功能。我提供了以下格式的数据
["val1", "val2", "val3"]
这来自存储过程,但输出为字符串。但是,由于某种原因,这根本不起作用,如果我使用 javascript 变量提供相同的数据
var data = ["val1", "val2", "val3"];
然后这工作正常。
<script type="text/javascript">
$(function()
$("#txtClient").autocomplete({
source: "/intranet/common/scripts/IntranetLists.aspx?ListType=C"
});
});
</script>
我有一个页面,它使用查询字符串提供我想要的任何数据。它更临时,但是当我之前使用bassistence 的 autocomplete时它起作用了。
有任何想法吗?
编辑
源只是在单独的行上输出一个条目。现在输出使用 JSON 格式。我不明白的是输入如何提供数据作为对数据源的查询。正如我所说,我正在使用每次输入新密钥时都应该调用的脚本。
这是我得到的代码(考虑到这与第三方自动完成插件配合得很好)
<%
Dim MyCmd As New dbExact("proc_Intranet_Lists")
MyCmd.cmd.Parameters("@List").Value = Request.QueryString("ListType")
If Request.QueryString("Top") <> Nothing Then
MyCmd.cmd.Parameters("@Top").Value = Request.QueryString("Top")
End If
MyCmd.cmd.Parameters("@Code").Value = Request.QueryString("term")
MyCmd.cmd.Connection.Open()
Dim results As New StringBuilder()
results.Append("[")
Dim dr As SqlDataReader = MyCmd.cmd.ExecuteReader
If dr.HasRows Then
While dr.Read
results.AppendLine("'" + dr(0).ToString() + "',")
End While
Else
results.Append("None Found")
End If
results.Remove(results.Length - 2, 2)
results.Append("]")
Response.Write(results.ToString())
results = Nothing
MyCmd.cmd.Connection.Close()
MyCmd = Nothing
%>
新自动完成的文档没有说明传递的查询字符串实际上称为“术语”(我从 search.php 文件中发现)。我在 VB.NET 中这样做。