我在文本框上的自动填充功能遇到以下问题:用户可以输入一个数字并获取他应该提供的建议列表。这只适用于第一个号码,如果我点击第二个号码,列表会切断一些条目,我不知道为什么。
更详细地描述问题: 在片刻,数据库中包含以下数字: 123456 123457 123458 123459 1234510 1234511 1234512 1234513 123451
如果我输入1,则所有9个条目都在列表中。如果我输入12,则只有这些条目在列表中:
123451 123456 123457 123458 123459
剩下的就不见了,我真的不知道为什么。所以我希望你们能给我一个建议或者看看我的错误在哪里:
以下是视图用于创建自动完成功能的代码:
<script>
$("#CompanyId").autocomplete({
source: "/AutoComplete/AutoCompleteCompanyID",
minLength: 1,
select: function (event, ui) {
}
});
</script>
自动填充的数据来源:
public JsonResult AutoCompleteCompanyID(string term)
{
var data = db.Companies.Where(s => s.CompanyID.ToString().Contains(term)).Select(x => new { id = x.CompanyID, label = x.CompanyName }).ToArray();
return Json(data, JsonRequestBehavior.AllowGet);
}
如果您需要更多代码或信息,请查看问题所在,我会尽快为您提供。感谢您的帮助和建议! :)
答案 0 :(得分:1)
我似乎无法复制此内容,但我认为这与将CompanyID
转换为字符串有关,您可能需要将db结果转换为可枚举的内容 - 例如。
var data = db.Companies.ToList().Where(s => s.CompanyID.ToString().Contains(term)).Select(x => new { id = x.CompanyID, label = x.CompanyName }).ToArray();
除此之外:从CompanyName
开始搜索可能会更容易,有点要求用户记住要搜索的公司的ID。