jQuery UI自动完成:第一个数字后的建议列表的奇怪行为

时间:2016-11-21 11:36:40

标签: jquery asp.net asp.net-mvc jquery-ui jquery-ui-autocomplete

我在文本框上的自动填充功能遇到以下问题:用户可以输入一个数字并获取他应该提供的建议列表。这只适用于第一个号码,如果我点击第二个号码,列表会切断一些条目,我不知道为什么。

更详细地描述问题: 在片刻,数据库中包含以下数字: 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);
}

如果您需要更多代码或信息,请查看问题所在,我会尽快为您提供。感谢您的帮助和建议! :)

1 个答案:

答案 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。