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