3

asp.net mvc アプリケーションで Kendo UI オートコンプリートを使用しています。Kendo オートコンプリートは、サーバー リクエストをオーバー ヘッドする各キー ストロークでサーバー メソッドをコールバックします。オートコンプリートを使用してサーバーに手動でコールバックし、データ ソースを取得する方法はありますか。

私のコードは以下の通りです

 @(Html.Kendo().AutoComplete()
 .Name("patientSearch")
 .DataTextField("patientSearch")
 .MinLength(2)
 .Placeholder("Search by Lastname, Firstname or DOB")
 .HtmlAttributes(new { id = "textPatientSearch" })
 .Template("<B>${data.LastName}, ${data.FirstName} </B> - ${ kendo.toString(kendo.parseDate(data.DateOfBirth),'MM/dd/yyyy') } ")
 .DataSource(source =>
 {
    source.Read(read =>
    {
        read.Action("GetFilteredPatient", "Order").Data("onAdditionalData");
    })
    .ServerFiltering(true);
 }))

ユーザーが入力をやめたことを確認するためのjqueryソリューションを見つけました。コードは次のとおりです。

$(function(){
        //setup before functions
        var typingTimer;                //timer identifier
        var doneTypingInterval = 2000;  //time in 3 ms

        //on keyup, start the countdown
        $('#textPatientSearch').keyup(function(e){
            clearTimeout(typingTimer);
            typingTimer = setTimeout(doneTyping, doneTypingInterval);
        });

        //on keydown, clear the countdown
        $('#textPatientSearch').keydown(function(){
            clearTimeout(typingTimer);
        });

        //user is "finished typing," do something
        function doneTyping () {
           **//WHAT TO DO HERE**
        }
    });

doneTyping 関数でオートコンプリートを手動でサーバー フィルター処理する方法がわかりません。助けてください。

4

1 に答える 1

7

最後に、私は解決策を見つけました.Kendo UIは、ユーザーがキーストロークの送信に失敗した場合、指定されたミリ秒で最後のキーストロークから次のユーザーストロークを待機する、ミリ秒単位の整数値を受け入れるDelay (デフォルト:200)メソッドを提供します指定された遅延時間で、剣道オートコンプリートはサーバー フィルタリングを自動的に開始します。

于 2014-08-04T06:23:35.247 に答える