我有一个绑定到远程传输的Kendo UI自动完成功能,我需要调整它的工作方式并且空白。递增更新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是否合适?我最终的目标是从这个功能开始其余的搜索。
第一次搜索如何失败?是否有任何JavaScript错误或返回错误状态码?这听起来像你分享应该工作正常 – 2013-03-05 19:16:48
我猜搜索不会失败。如果没有返回搜索结果或空的JSON响应,则不会显示自动完成。 – xocomil 2013-03-05 19:32:58