【问题标题】:KendoUI Autocomplete with external datasource带有外部数据源的 Kendo UI 自动完成
【发布时间】:2012-11-16 12:31:29
【问题描述】:

在我的大脑爆炸之前需要一些帮助.. 似乎无法理解我做错了什么

有一个非常简单的自动完成功能。

$(document).ready(function () {

    var data =new kendo.data.DataSource({
        serverFiltering: true,
        transport: {
            read: "data/output.txt" 
        }
    });
  $("#input").kendoAutoComplete({
            dataSource: data
      });
        });

但是无论我多么努力,我都没有得到我想要的结果,只是一个垂直的字母列表..? 我不知道外部文件的外观如何?就像现在一样:

"value1",
"value2",
"value3"

【问题讨论】:

  • output.txt 包含什么?另外,您为什么启用 serverFiltering?启用它意味着您将实现过滤服务器端,这对于普通文本文件是不可能的。

标签: autocomplete datasource kendo-ui


【解决方案1】:

发生这种情况是因为您的 dataSource 认为源是作为该文本文档内容的字符串,它为字符串中的每个字符创建一个项目。

要么使用本地绑定,例如here

或者创建一个服务/操作,它将数据作为适当的 json、odata 或其他方式提供给您。包含符号的文本文件不是一个好主意。

【讨论】:

    【解决方案2】:

    您返回数据的方式不是最方便的。您应该尝试将其作为 JSON 数组返回:

    [ 
        "text1",
        "text2",
        "text3"
    ]
    

    但是,KendoUI 开发人员非常好,允许您在 DataSource.schema 中定义一个 parse 函数,您可以在其中转换格式。

    尝试使用定义如下的DataSource

    var data = new kendo.data.DataSource({
        serverFiltering:true,
        transport      :{
            read:"data/output.txt"
        },
        schema         :{
            parse:function (a) {
                return JSON.parse("[" + a + "]");
            }
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 2018-02-16
      • 2017-05-31
      • 2011-02-02
      相关资源
      最近更新 更多