1

我正在尝试使用他们的教程配置剑道自动完成功能。问题是自动完成控件显示对象而不是我在剑道初始化中设置的属性值(参见捕获):

@(
    Html.Kendo().AutoComplete()
    .Name("products")
    .Placeholder("Find Product...")
    .DataTextField("Name")
    .Template("<span><img src='/Content/Images/default-photo.jpg' " +
    "width='20' height='20' />&nbsp;${data}</span>")
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("GetProducts", "Search")
            .Data("onAdditionalData");
        })
            .ServerFiltering(true);
    })

)

<script>
    function onAdditionalData() {
        return {
            text: $("#products").val()
        };
    }
</script>

在此处输入图像描述

单击此项目后,名称将正确显示: 在此处输入图像描述

我的操作返回类型是return Json(products, JsonRequestBehavior.AllowGet); 产品在哪里ICollection<VmProduct> 发生了什么?

4

1 回答 1

1

您已经设置了 ,DataTextField但是在设置 时会覆盖它Template,因为 kendo 将执行模板而不是获取您设置的字段。但这不是问题,问题是在您的模板中您正在打印data对象,这实际上是一个对象。您需要打印与建议文本相关的属性,例如:

.Template("<span><img src='/Content/Images/default-photo.jpg' " +
"width='20' height='20' />&nbsp;${data.Name}</span>")

试一试,告诉我们会发生什么。

于 2016-03-31T13:49:31.993 回答