如何解决对象无法通过 Kendo MVC 自动完成 UI
我曾经有过这个工作,但我不确定现在是什么破坏了它。对象和对象属性未填充下拉列表。如果我只在我的自动完成控制器中传递一个属性的字符串数组,我可以显示对象属性,但我想将整个对象传递给自动完成下拉列表并从那里设置模板样式。我一直在更改 DataTextField 和 Template 以简化此示例和测试目的,但尚未取得任何成功。此外,现在我从 Parts_Read 方法返回一组对象,并确保启用了 AllowGet。你有没有发现我遗漏了什么?
查看
@(Html.Kendo().AutoComplete()
.Name("parts_results")
.DataTextField("Name")
.Template("#= VendorPartCode # | #= Name # | #= UpcCode #")
.HeaderTemplate("<div class=\"dropdown-header k-widget k-header\">" +
"<span>Matching Parts</span>" +
"</div>")
.FooterTemplate("Total <strong>#: instance.dataSource.total() #</strong> items found")
.Filter("contains")
.MinLength(3)
.HtmlAttributes(new { style = "width:100%",@class = "form-control"})
.Height(520)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("Parts_Read","AutoComplete")
.Data("onAdditionalData");
})
.ServerFiltering(true);
})
)
脚本
function onAdditionalData() {
return {
text: $("#parts_results").val(),supplier: $("#part_supplier").val()
};
}
自动完成控制器
public JsonResult Parts_Read(string text)
{
int supplier = int.Parse(Request.Params["supplier"]);
var search = Request.Params["text"];
if (!string.IsNullOrEmpty(text) && supplier >0)
{
dbContext db = new dbContext();
var data = db.dbParts.Where(x => x.PartSupplierCompanyId == supplier && (x.PartName.ToLower().Contains(search.ToLower()) || x.PartCode.ToLower().Contains(search.ToLower()))).Select(p => new TimsPart(p,p.Company)).ToArray();
return Json ( data,JsonRequestBehavior.AllowGet );
}
else
{
return new JsonResult { Data = new List<TimsPart>(),JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。