jQuery UI Ajax Автозаполнение с учетом регистра ASP.net MVC - PullRequest
0 голосов
/ 03 января 2019

здесь я использую функцию автозаполнения 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);
  }

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Добавить соответствующий текст, выделенный жирным шрифтом Предложение автозаполнения Список возможен Внутри функции добавьте этот код

$.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);
    };
0 голосов
/ 03 января 2019

Вам необходимо использовать эту перегрузку из StartsWith и указать с помощью типа StringComparison , чтобы сравнение проводилось без учета регистра:

C.OrganizationName.StartsWith(Prefix, StringComparison.InvariantCultureIgnoreCase)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...