1

Kendo UI オートコンプリートがリモート トランスポートにバインドされており、それがどのように機能するかを微調整する必要があり、空白になります。

現在、私はサーバー上で一連の検索を実行し、結果を JSON 応答に統合してから、オートコンプリートのためにこれをデータソースに返します。問題は、これには時間がかかる可能性があり、アプリケーションが時間に敏感であることです。

どの検索が最も重要であるかを特定し、1 つの検索が選択された結果の 95% を占めることがわかりました。ただし、他の検索からのデータを提供する必要があります。サーバー上のデータに対する個別のリクエストを開始し、返されたときにオートコンプリートを追加することを考えていました。メインの検索は非常に高速に返され、リストに最初に追加されるアイテムになります。次に、他の検索が戻ってきたら、リストに動的に追加したいと思います。

私たちのアプリケーションはknockout.jsを使用しており、データソースをビューモデルの一部にすることを考えましたが、周りを見回すと、Kendoはオブザーバブルの変更に基づいて更新されません.

私は現在困惑しており、アドバイスを歓迎します。

編集:

私は実験を行っており、次のデータソースで必要なものをシミュレートすることに成功しました:

var dataSource = new kendo.data.DataSource({
transport: {
    read: {
        url: window.performLookupUrl,
        data: function () {
            return {
                param1: $("#Input").val()
            };
        }
    },
    parameterMap: function (options) {
        return {
            param1: options.param1
        };
    }
},
serverFiltering: true,
serverPaging: true,
requestEnd: function (e) {
    if (e.type == "read") {
        window.setTimeout(function() {
            dataSource.add({ Name: "testin1234", Id: "X1234" })
        }, 2000);
    }
}
});

最初の検索で結果が返された場合、2 秒後に新しい項目がリストに表示されます。ただし、最初の検索が失敗した場合は、何も起こりません。このように requestEnd を使用 (悪用??) するのは適切ですか? 私の最終的な目標は、この関数から残りの検索を開始することです。

4

1 に答える 1

0

Telerik に連絡したところ、ニーズに合わせて変更できる次の jsbin が提供されました。

http://jsbin.com/ezucuk/5/edit

于 2013-03-12T16:58:26.180 に答える