Kendo 自动完成显示 [object object] 而不是 属性 值
Kendo autocomplete showing [object object] instead of propery value
我正在尝试使用他们的教程配置 kendo 自动完成。
问题是自动完成控件显示对象而不是我在 kendo 初始化中设置的 属性 值(参见捕获):
@(
Html.Kendo().AutoComplete()
.Name("products")
.Placeholder("Find Product...")
.DataTextField("Name")
.Template("<span><img src='/Content/Images/default-photo.jpg' " +
"width='20' height='20' /> ${data}</span>")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetProducts", "Search")
.Data("onAdditionalData");
})
.ServerFiltering(true);
})
)
<script>
function onAdditionalData() {
return {
text: $("#products").val()
};
}
</script>
点击此项后名称正确显示:
我的操作return类型是return Json(products, JsonRequestBehavior.AllowGet);
其中产品是 ICollection<VmProduct>
怎么回事?
您已经设置了 DataTextField
,但是当您设置 Template
时您正在覆盖它,因为 kendo 将执行模板而不是获取您设置的字段。但这不是问题,问题是在您的模板中您正在打印 data
对象,这实际上是一个对象。您需要打印与建议文本相关的属性,例如:
.Template("<span><img src='/Content/Images/default-photo.jpg' " +
"width='20' height='20' /> ${data.Name}</span>")
试一试并告诉我们会发生什么。
我正在尝试使用他们的教程配置 kendo 自动完成。 问题是自动完成控件显示对象而不是我在 kendo 初始化中设置的 属性 值(参见捕获):
@(
Html.Kendo().AutoComplete()
.Name("products")
.Placeholder("Find Product...")
.DataTextField("Name")
.Template("<span><img src='/Content/Images/default-photo.jpg' " +
"width='20' height='20' /> ${data}</span>")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetProducts", "Search")
.Data("onAdditionalData");
})
.ServerFiltering(true);
})
)
<script>
function onAdditionalData() {
return {
text: $("#products").val()
};
}
</script>
点击此项后名称正确显示:
我的操作return类型是return Json(products, JsonRequestBehavior.AllowGet);
其中产品是 ICollection<VmProduct>
怎么回事?
您已经设置了 DataTextField
,但是当您设置 Template
时您正在覆盖它,因为 kendo 将执行模板而不是获取您设置的字段。但这不是问题,问题是在您的模板中您正在打印 data
对象,这实际上是一个对象。您需要打印与建议文本相关的属性,例如:
.Template("<span><img src='/Content/Images/default-photo.jpg' " +
"width='20' height='20' /> ${data.Name}</span>")
试一试并告诉我们会发生什么。