逐步更新Kendo UI自动完成功能

时间:2013-03-05 17:36:18

标签: autocomplete knockout.js kendo-ui

我有一个绑定到远程传输的Kendo UI自动完成功能,我需要调整它的工作方式并且空白。

目前,我在服务器上执行了大量搜索,并将结果集成到JSON响应中,然后将其返回到自动完成的数据源。问题是这可能需要很长时间,而且我们的应用程序是时间敏感的。

我们已确定哪些搜索最重要,并发现1次搜索占所选结果的95%。但是,我仍然需要提供其他搜索的数据。我正在考虑在服务器上启动单独的数据请求,并在返回时添加自动完成功能。我们的主搜索返回速度非常快,并且将是添加到列表中的第一个项目。然后当其他搜索返回时,我希望它们动态添加到列表中。

我们的应用程序使用knockout.js并且我考虑过将数据源作为视图模型的一部分,但是从环顾四周看,Kendo不会根据对您的observable的更改进行更新。

我目前很难过,欢迎任何建议。

编辑:

我一直在尝试并使用以下数据源模拟了我想要的东西:

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秒后,新项目会弹出列表。但是,如果第一次搜索失败,则没有任何反应。使用(滥用??)这样的请求是否合适?我最终的目标是从这个功能开始其余的搜索。

1 个答案:

答案 0 :(得分:0)

我联系了Telerik,他们给了我以下jsbin,我可以根据自己的需要进行修改。

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