在这里,我在搜索框中使用Jquery-ui自动完成功能,但是如果我搜索小写字母,则大写字母没有出现在建议列表中。如何为此自动完成Ajax ASP.net MVC添加大写和小写字母敏感搜索>
如果可能的话,添加匹配的文本加粗搜索建议列表?
查看页面
<input id="app-search">
<script src="https://code.jquery.com/jquery-2.1.1.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css" rel="stylesheet" />
<script>
(function() {
$("#app-search").autocomplete({
minLength: 1, //start letter search
selectFirst: true,
autoFocus: true,
source: function(request, response) {
$.ajax({
url: '@Url.Action("GetSearchType")',
type: "POST",
dataType: "json",
data: {
SearchType: @Model.SearchType,
Prefix: request.term
},
success: function(data) {
if (!data.length) {
var result = [{
label: 'No record(s) found',
value: response.term
}];
response(result);
} else {
response($.map(data.slice(0, 10), function(item) {
return {
label: item.OrganizationName,
value: item.OrganizationName
};
}))
}
}
})
},
});
});
</script>
MVC Asp.net中的此控制器
[HttpPost]
public JsonResult GetSearchType(string Prefix)
{
List<OrganizationModel> OrganizationList = new List<OrganizationModel>()
{
new OrganizationModel {OrganizationName = "Apple" },
new OrganizationModel { OrganizationName = "name" },
new OrganizationModel { OrganizationName = "New" },
};
var CourseList = (from C in OrganizationList
where C.OrganizationName.StartsWith(Prefix)
select new { C.OrganizationName });
return Json(CourseList, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:0)
您需要使用this overload中的StartsWith
并通过使用StringComparison类型进行指定,以便比较时不区分大小写:
C.OrganizationName.StartsWith(Prefix, StringComparison.InvariantCultureIgnoreCase)
答案 1 :(得分:0)
添加匹配的粗体自动完成建议列表 在功能内添加此代码
$.ui.autocomplete.prototype._renderItem = function (ul, item) {
item.label = item.label.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + $.ui.autocomplete.escapeRegex(this.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "</a>")
.appendTo(ul);
};