【问题标题】:Incrementally update Kendo UI autocomplete增量更新 Kendo UI 自动完成
【发布时间】:2013-02-20 05:52:50
【问题描述】:

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

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

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

我们的应用程序使用了 knockout.js,我曾考虑让数据源成为我们视图模型的一部分,但环顾四周,Kendo 不会根据您对 observables 的更改进行更新。

我目前很困惑,欢迎任何建议。

编辑:

我一直在试验,并在使用以下数据源模拟我想要的东西时取得了一些成功:

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 错误或返回错误状态代码?听起来您分享的内容应该可以正常工作
  • 我猜搜索不会失败。如果没有搜索结果或返回空 JSON 响应,则不会显示自动完成功能。

标签: autocomplete knockout.js kendo-ui


【解决方案1】:

我联系了 Telerik,他们给了我以下 jsbin,我可以对其进行修改以满足我的需要。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    相关资源
    最近更新 更多