首页 > 解决方案 > 使用数组更改更新/刷新 kendo ui 自动完成

问题描述

我有一个标准的 jquery kendo ui 自动完成功能,很简单,可以启动:

    let querCo = [];
    ...........
    $.each(lRsp, function(i, value) {
         querCo.push(value[id]);
    });

   $("#agent").kendoAutoComplete({
        dataSource: querCo,
        serverFiltering: true, // this was also an attempt
        select: function(e) {
                let item = e.item;
                text = item.text();
                // console.log(text);
        }
    }); 

一切都很好,除非尝试更新它...例如,我有一个删除按钮,目的是删除所选项目;我得到了选定的项目,并更新了数组querCo并从数组中删除了该项目。但是自动完成仍然显示它....

 $('#del').click(function(){
    let val = text;
    querCo = $.grep(querCo, function(value) {
      return value != val;
  });
  console.log(querCo); // correct, outputs updated array

然后我尝试了以下两种方法;似乎什么都不做......原始数组,唉,删除的项目,仍然显示在自动完成?

尝试 1

$("#agent").data("kendoAutoComplete").dataSource.read();

尝试 2

$("#agent").data("kendoAutoComplete").refresh();

标签: javascriptjquerykendo-uikendo-autocomplete

解决方案


我相信您要使用的方法是 setDataSource 来替换自动完成绑定到的数据源:

$("#agent").data("kendoAutoComplete").setDataSource(querCo);

https://docs.telerik.com/kendo-ui/api/javascript/ui/autocomplete/methods/setdatasource


推荐阅读