12
我對Kendo UI自動完成組件變得很瘋狂。我使用自己的函數通過jQuery訪問數據,所以我必須將AutoComplete的dataSource.transport.read設置爲函數。代碼是這樣的。Kendo 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',dataSource.transport.read永遠不會再被調用。太令人沮喪了!
我試圖使用自動同步數據源屬性,手動數據源同步,自動完成對數據綁定設置新的數據源對象,但沒有運氣。
我在做什麼錯?我忘了什麼?
在此先感謝。
這是驚人的! AutoComplete現在就像一個魅力!我花了很多時間處理它,我變得瘋了!非常感謝! – vermicida
同樣的問題在這裏,解決方案是最有幫助的! – HapiDjus