私は剣道UIオートコンプリートコンポーネントに夢中になりつつあります。 jQueryを使用してデータにアクセスするための独自の関数を使用しているので、AutoComplete dataSource.transport.readを関数として設定する必要があります。コードはこのようなものです。剣道UIオートコンプリートデータソースの転送は一度しか読み取られません
minLengthAtocomplete = 3;
$('#autocomplete').kendoAutoComplete({
minLength : 3,
filter : "contains",
dataValueField : "key",
dataTextField : "value",
dataSource : new kendo.data.DataSource({
transport : {
read : _OnTransportRead
},
schema : {
/* object schema */
}
})
});
function _OnTransportRead(e) {
var text = $.trim(e.data.filter.filters[0].value);
if (text && text.length >= minLengthAtocomplete) {
_GetUsers(
text,
function onSuccess(data) {
var users = [];
/* sets users with info in data */
e.success(users);
},
function onError(error) {
/* stuff with error */
}
);
}
}
function _GetUsers(userName, onSuccess, onError) {
/* Ajax to get users from DB */
}
このコードは完璧に動作しますが、dataSource.transport.readは一度だけ呼ばれます。私はテキスト'michae'で最初の検索を行い、AutoCompleteコンポーネントはdataSource.transport.readを期待通りに実行します。次に、「michael」を検索するためのもう1文字を追加し、dataSource.transport.readが再び呼び出されることはありません。とてもイライラしています!
私はautoSync dataSourceプロパティ、手動dataSource Syncを使ってみましたが、AutoComplete dataBoundに新しいdataSourceオブジェクトを設定しましたが、運はありませんでした。
私は間違っていますか?私は何を忘れていますか?
ありがとうございます。
素晴らしいです!オートコンプリートは今の魅力のように機能します!私はそれを扱うのに多くの時間を費やした、私は狂っていた!どうもありがとう! – vermicida
同じ問題があり、解決策が最も役立ちました! – HapiDjus