自动完成接受一个sql值,而不是多个

问题描述

| 我目前是第一次涉足jquery自动完成功能。首先,我有一个.net处理程序,用于调用mssql数据库提取姓氏。效果很好。 但是,当我尝试添加其他值时,它根本不起作用。处理程序中使用的代码如下。
    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    Dim prefixText As String = context.Request.QueryString(\"term\")

    Dim conn As sqlConnection = New sqlConnection
    conn.ConnectionString = ConfigurationManager.AppSettings(\"CDBPath\")

    Dim cmd As sqlCommand = New sqlCommand
    cmd.CommandText = (\"Select Ebase.EbLastname,Ebase.EbFirstname,Ejob.EjTitle,Ebase.EbClock \" + _
                        \"From Ebase \" + _
                        \"INNER Join Ejob \" + _
                        \"ON Ebase.EbFlxID = Ejob.EjFlxIDEb \" + _
                        \"Where Ebase.EbLastname LIKE @SearchText + \'%\'\" + _
                        \"And Ebase.EbDateEnd Is Null \" + _
                        \"And Ejob.EjDateEnd Is Null\")

    cmd.Parameters.AddWithValue(\"@SearchText\",prefixText)
    cmd.Connection = conn

    Dim sb As StringBuilder = New StringBuilder
    conn.open()
    Dim sdr As sqlDataReader = cmd.ExecuteReader

    While sdr.Read
        sb.Append(sdr(\"EbLastname\")).Append(\",\").Append(sdr(\"EbFirstname\")).Append(\" - \").Append(sdr(\"EjTitle\")).Append(\",\").Append(sdr(\"EbClock\")).Append(Environment.NewLine)
    End While
    conn.Close()
    context.Response.ContentType = \"application/json\"
    context.Response.Write(sb.ToString)

End Sub
发布时我没有包括IsReusable,但是在那里。为什么我不喜欢某些真正简单的东西,为什么它不喜欢多个值,但会显示一个单独的值? **编辑**为了明确起见,我只是看着Firebug,它正在收到响应,但没有显示它。到目前为止,我的实现非常简单,一点也不花哨。
        $(function() {
        $(\'#lastName\').autocomplete
        ({
            source: \"FormAutoComplete.ashx\",minChars: 3

        });
    })
    

解决方法

        如果要返回多个值,则必须考虑项目的解析和格式。这是我过去所做的示例。它返回一个像这样的json对象:
{ City: \"Charleston\",State: \"SC\",Code: \"chs\" }
并将其格式化为
Charleston,SC
,并使用
Code
表示在文本框中显示的实际值。
$areas.autocomplete(data,{
            formatItem: function (item) {
                return item.City + \",\" + item.State;
            },formatResult: function (item) {
                return item.Code;
            },multiple: true
});