2010-05-20 64 views
0

我正在構建一個HTTPHandler,它將提供用於jQuery Autocomplete的純文本。我現在正在工作,除了當我插入文本的第一位時,它不會將我帶到字母表的正確部分。優化LINQ查詢與jQuery一起使用自動完成

例子:如果我進入Ne

我下拉回報

Nlabama
阿肯色州

通知書的自Ne從 「阿拉巴馬」, 「N」 和 「labama」

當我輸入第三個字符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:我在QueryString(「ID」)上執行SQL查詢,然後在相同ID的每個後續加載中,我們只是過濾掉「部分」。

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

+0

此外,在我發佈的文章中,這個人談論了使用JSON,並且我真的不知道關於JSON的第一件事或者它如何對應這個問題。 – 2010-05-20 02:45:10

回答

0

我改變了我的jQuery庫使用jQuery的UI,然後使用一個Singleton對象,以避免打在每個頁面加載數據庫建立我的IHttpHandler。 answer here似乎對我很好。

1

只要抓住從查詢字符串part,並用它的Where子句中僅篩選與它啓動,並有相應的ID的區域。

ToArray的是沒有必要的

+0

謝謝,我試過了,但不幸的是我仍然一遍又一遍地敲擊數據庫。經過大量的挖掘,我找到了我正在尋找的東西。你的建議指出了我朝着正確的方向。 http://stackoverflow.com/questions/2931877/cant-get-jquery-autocomplete-to-work-with-external-json/2933668#2933668 – 2010-05-31 05:19:32