Автозаполнение принимает одно значение sql, а не несколько - PullRequest
0 голосов
/ 27 мая 2011

Я сейчас в первый раз погружаюсь в автозаполнение 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 при публикации, но это там. Есть ли что-то действительно простое, что я упускаю из-за того, что ему не нравятся несколько значений, но будет отображаться одно значение?

** Edit ** Чтобы уточнить, я только что посмотрел в Firebug, и он получает ответ, но просто не отображает его. Моя реализация этого пока довольно проста, ничего особенного.

        $(function() {
        $('#lastName').autocomplete
        ({
            source: "FormAutoComplete.ashx",
            minChars: 3

        });
    })

1 Ответ

0 голосов
/ 27 мая 2011

Если вы возвращаете несколько значений, вам придется разбираться с разбором и форматированием элемента.Вот пример того, что я сделал в прошлом.Он возвращает объект json следующим образом:

{ City: "Charleston", State: "SC", Code: "chs" }

, форматирует его в Charleston, SC и использует Code для фактического значения, отображаемого в текстовом поле.

...