【发布时间】:2016-09-24 12:39:16
【问题描述】:
我很难显示所有可能的自动完成行。 我正在使用 db 来存储所有行。 现在我使用那个脚本:
<script type="text/javascript">
$(document).ready(function () {
$("#Industry").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Employee/SuggestWorkExperienceIndustry",
type: "POST",
dataType: "json",
data: { Prefix: request.term },
success: function (data) {
response($.map(data, function (item) {
return { label: item.Industry, value: item.Industry };
}))
}
})
},
messages: {
noResults: "failure", results: ""
}
});
});
</script>
控制器部分:
[HttpPost]
public JsonResult SuggestWorkExperienceIndustry(string Prefix)
{
using (var db = new HRMEntities())
{
var industryList = db.WorkExperienceIndustries.ToList();
var industry = (from n in industryList
where n.Industry.ToLower().Contains(Prefix.ToLower())
select new { n.Industry });
return Json(industry, JsonRequestBehavior.AllowGet);
}
}
效果很好,但我不知道当用户点击字段时如何从数据库中获取所有行。
【问题讨论】:
-
用户点击字段时是否会发生请求?如果有,
Prefix的值是多少? -
@Andrei 不,请求没有发生。如果它发生了,我会检查
Prefix是否为null并将所有值从 db 设置为industry,仅此而已。
标签: javascript jquery asp.net asp.net-mvc autocomplete