0

誰かが問題に光を当てることができますか:

私は次のものを持っています:

    $(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 プラグインによって解釈可能かどうかはわかりません。

誰かがこの問題を手伝ってくれるなら、本当に感謝しています。

4

2 に答える 2

0

これはほとんど機能しましたが、確かにエラーは発生していませんが、同様に結果も得られていません。

私は現在、オートコンプリートが組み込まれた新しいバージョンの 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」パラメーターも正常に機能しているように見えます。これは、2 番目のキャラクターを入力するまで、アニメーション化されたホイールが「作動」しないためです。

追加のポインタは非常に高く評価されます。

于 2010-03-29T09:04:54.930 に答える
0

この関数は、検索テキストを含む q という名前のパラメーターを受け入れる必要があります。extraParams オプションを使用してカウントを渡すことができますが、デフォルトでは渡されません。

MVC コントローラー アクションで返すコンテンツは、実際には、検索結果の各レコードに対して StringBuilder.AppendLine を使用して作成された新しい行で区切られたリストです。

HTH

これは、MVC http://geekswithblogs.net/renso/archive/2009/09/08/jquery-autocomplete-in-asp.net-mvc-framework.aspx内での使用の非常に良い例です。

于 2010-03-24T15:40:54.723 に答える