Оптимизируйте LINQ Query для использования с автозаполнением jQuery - PullRequest
0 голосов
/ 20 мая 2010

Я работаю над созданием HTTPHandler, который будет обслуживать простой текст для использования с jQuery Autocomplete. У меня это работает сейчас, за исключением того, что когда я вставляю первый бит текста, это не приводит меня к правой части алфавита.

Пример: если я введу Ne

мой выпадающий возвращается

Nlabama
Arkansas

Обратите внимание на "N" из Ne и "лабаму" из "Алабамы"

Когда я набираю третий символ New, тогда jQuery возвращает раздел результатов «N».

Мой текущий код выглядит так

Public Sub ProcessRequest(ByVal context As System.Web.HttpContext) Implements System.Web.IHttpHandler.ProcessRequest
    ''# the page ContentType is plain text
    HttpContext.Current.Response.ContentType = "text/plain"

    ''# store the querystring as a variable'
    Dim qs As Nullable(Of Integer) = Integer.TryParse(HttpContext.Current.Request.QueryString("ID"), Nothing)

    ''# use the RegionsDataContext'
    Using RegionDC As New DAL.RegionsDataContext

        ''# create a (q)uery variable'
        Dim q As Object

        ''# if the querystring PID is not blank'
        ''# then we want to return results based on  the PID'
        If Not qs Is Nothing Then
            ''# that fit within the Parent ID'
            q = (From r In RegionDC.bt_Regions _
                    Where r.PID = qs _
                   Select r.Region).ToArray

            ''# now we loop through the array'
            ''# and write out the ressults'
            For Each item In q
                HttpContext.Current.Response.Write(item & vbCrLf)
            Next

        End If


    End Using
End Sub

Итак, где я сейчас нахожусь, так это то, что я наткнулся на часть " Part " метода автозаполнения, в результате чего я должен возвращать только информацию, содержащуюся в части.

У меня вопрос: как мне реализовать эту концепцию в моем HTTPHandler, не выполняя новый SQLQuery при каждом изменении символа? IE: я делаю SQL-запрос к QueryString ("ID") , а затем при каждой последующей загрузке того же идентификатора мы просто отфильтровываем "Part".

http://www.example.com/ReturnRegions.axd?ID=[someID]&Part=[string]

Ответы [ 2 ]

1 голос
/ 20 мая 2010

Просто возьмите part из строки запроса и используйте его в предложении Where для фильтрации только тех областей, которые начинаются с него И имеют соответствующий идентификатор.

ToArray не требуется

0 голосов
/ 31 мая 2010

Я изменил свою библиотеку jQuery для использования jQuery-UI, а затем собрал свой iHttpHandler, используя объект Singleton, чтобы избежать попадания в базу данных при каждой загрузке страницы. ответ здесь , кажется, работает хорошо для меня.

...