2010-03-24 57 views
0

上工作的人都可以擺脫對這個問題的一些光,請:試圖讓JQuery的自動完成Asp.Net

我有以下幾點:

$(document).ready(function() { 
    $("#txtFirstContact").autocomplete({url:'http://localhost:7970/Home/FindSurname' }); 
}); 

在我的Asp.Net頁面。 HTTP請求是一個MVC控制器的功能和代碼是在這裏:

Function FindSurname(ByVal surname As String, ByVal count As Integer) 
    Dim sqlConnection As New SqlClient.SqlConnection 
    sqlConnection.ConnectionString = My.Settings.sqlConnection 
    Dim sqlCommand As New SqlClient.SqlCommand 

    sqlCommand.CommandText = "SELECT ConSName FROM tblContact WHERE ConSName LIKE '" & surname & "%'" 

    sqlCommand.Connection = sqlConnection 

    Dim ds As New DataSet 
    Dim da As New SqlClient.SqlDataAdapter(sqlCommand) 
    da.Fill(ds, "Contact") 
    sqlConnection.Close() 

    Dim contactsArray As New List(Of String) 
    For Each dr As DataRow In ds.Tables("Contact").Rows 
     contactsArray.Add(dr.Item("ConSName")) 
    Next 
    Return Json(contactsArray, JsonRequestBehavior.AllowGet) 

End Function 

據我所知,控制器返回JSON數據,但我不知道,如果函數參數是否正確,或者確實如果返回的格式可以被AutoComplete插件解釋。

如果有人能夠協助此事,我會非常感激。

回答

0

函數需要接受一個名爲q的參數,其中包含搜索文本。您可以使用extraParams選項傳遞計數,但默認情況下不會傳遞。

我在我的MVC控制器操作中返回的內容實際上是一個新的行分隔列表,它使用StringBuilder.AppendLine爲搜索結果中的每條記錄構建。

HTH

這是關於使用MVC內http://geekswithblogs.net/renso/archive/2009/09/08/jquery-autocomplete-in-asp.net-mvc-framework.aspx

+0

感謝Dan,您使用的是什麼版本的JQuery,或者什麼是自動完成插件,因爲您所說的總是有道理,但它只是對我沒有用,並且想知道我是否爲您提供了不同的插件和/或版本。 – JasonMHirst 2010-03-25 08:43:46

+0

我正在使用jQuery 1.3.2,但jquery.ui.autocomplete.js文件上沒有版本號,但文件頭包含以下行 版本:$ Id:jquery.autocomplete.js 5785 2008-07-12 10:37:33Z joern.zaefferer $ 不知道是否有幫助 – 2010-03-25 09:10:13

+0

謝謝丹,非常感謝你的幫助。目前尚未解決,但會搶咖啡繼續研究。再次感謝。 – JasonMHirst 2010-03-25 09:40:19

0

一個很好的例子,幾乎得到了這個工作,肯定不是現在得到任何錯誤,但同樣沒有得到任何結果。

我現在已經使用內置了AutoComplete的JQuery的新版本,現在可以在文本框中獲得我以前沒有收到的動畫輪 - 所以希望這是一個好兆頭。

我的MVC功能是:

Function FindSurname(ByVal q As String, ByVal limit As Integer) As String 
    Dim sqlConnection As New SqlClient.SqlConnection 
    sqlConnection.ConnectionString = My.Settings.sqlConnection 
    Dim sqlCommand As New SqlClient.SqlCommand 

    sqlCommand.CommandText = "SELECT ConSName FROM tblContact WHERE ConSName LIKE '" & q & "%'" 

    sqlCommand.Connection = sqlConnection 

    Dim ds As New DataSet 
    Dim da As New SqlClient.SqlDataAdapter(sqlCommand) 
    da.Fill(ds, "Contact") 
    sqlConnection.Close() 
    Dim a As New StringBuilder 
    For Each dr As DataRow In ds.Tables("Contact").Rows 
     a.Append(dr.Item("ConSName")) 
     a.AppendLine() 
    Next 
    Return a.ToString 
End Function 

和aspx頁面上的腳本是:

$(document).ready(function() { 
    $("#txtFirstContact").autocomplete({ source: 'http://localhost:7970/Home/FindSurname/', 
              minLength: 2 
             }); 
}); 

再次,「的minLength」參數似乎是工作的罰款也爲動畫輪沒有按't'踢'直到我進入第二個角色。

任何額外的指針將不勝感激。