[英]How to show autocomplete from more than one column?
这段代码仅从一列返回自动完成功能,而我的逻辑是从两列中获取自动完成功能。 我想知道是什么问题。 请,如果有人知道答案,请帮助我。
谢谢!
public JsonResult SearchFromTable(string name)
{
AccountingDataLayer.AccountingSMSEntities context = new AccountingDataLayer.AccountingSMSEntities();
var search = (from s in context.Products
where s.Name == name || s.FullCode == name
select new{s.FullCode , s.Name , s.Description });
return Json(search, JsonRequestBehavior.AllowGet);
}
public JsonResult AutoCompleteProductName(string term , string t)
{
AccountingDataLayer.AccountingSMSEntities context = new AccountingDataLayer.AccountingSMSEntities();
var result = (from p in context.Products
where p.Name.ToLower().Contains(term.ToLower()) || p.FullCode.ToLower().Contains(t.ToLower())
select new { p.Name , p.FullCode }).Distinct();
return Json(result, JsonRequestBehavior.AllowGet);
}
$("#search").autocomplete({
source: function (request, response) {
$.ajax({
url: "/InVoiceStock/AutoCompleteProductName",
type: "POST",
dataType: "json",
data: { term: request.term , t: request.t },
success: function (data) {
response($.map(data, function (item , t) {
return { label: item.Name, value: item.Name, label: t.FullCode, value: t.FullCode };
}))
}
})
},
messages: {
noResults: "", results: ""
}
});
});`
您不必要地创建了一整套t
变量。 该请求对象将仅具有一个term
属性,该属性引用文本输入中当前的值。 所以request.t
在这里将是未定义的
data: { term: request.term , t: request.t }
向前移动,在操作方法中, string t
将为null,并且不会在过滤中使用
var result = (from p in context.Products
where p.Name.ToLower().Contains(term.ToLower()) || p.FullCode.ToLower().Contains(t.ToLower())
select new { p.Name , p.FullCode }).Distinct();
要更正它,请在where子句中在两个条件中都使用term
并删除对t
不必要引用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.