ddgjgj Ответов: 1

Asp.net mvc5 как преобразовать текстовое поле в выпадающее меню ?


Это рабочий код , но я хочу сделать вот что: как я могу изменить текстовое поле @Html.TextBoxFor(model => model.CategoryID, new { @class = "form-control" })
в dropdowncolumn , со всеми теми же функциональными возможностями ,я имею в виду такую опцию автозаполнения :




@Html.TextBoxFor(model => model.CategoryID,   new { @class = "form-control" })
@section scripts{
    <script src="~/Scripts/jquery-ui-1.12.1.js"></script>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script>
        $(function () {
            $("#CategoryID").autocomplete({
                source: function (request, response) {
                $.ajax({
                    url: '@Url.Action("AutoComplete")',
                    datatype: "json",
                    data: {
                        term: request.term
                    },
                    success: function (data) {
                        response($.map(data, function (val, item) {
                            return {
                                label: val.Name + "     |       " + val.Description,
                                value: val.Name,
                                CategoryId: val.ID,
                                 Description: val.Description
                            }
                        }))
                    }
                })
            },
            select: function (event, ui) {
                $.get("/Home/GetSProductList", { CategoryID: ui.item.CategoryId }, function (data) {
                    $("#ProductID").empty();
                    $.each(data, function (index, row) {
                        $("#ProductID").append("<option value='" + row.ProductID + "'>" + row.ProductName + "</option>")
                    });
 
                });
 
                $.get("/Home/GetOrderList", { ProductID: $("#ProductID").val() }, function (data) {
                    $("#OrderID").empty();
                    $.each(data, function (index, row) {
                        $("#OrderID").append("<option value='" + row.OrderID + "'>" + row.OrderID + "</option>")
                    });
 
                });
 
 
            }
 
 
 
            })
        })
    </script>
}


public ActionResult Index()
      {
 
 
          List<Category> CategoryList = db.Categories.ToList();
 
 
          ViewBag.CategoryList = new SelectList(CategoryList , "CategoryID" , "CategoryName");
          return View();
      }


public ActionResult AutoComplete(string term)
      {
          if (!String.IsNullOrEmpty(term))
          {
              var list = db.Categories.Where(c => c.CategoryName.ToUpper().Contains(term.ToUpper())).Select(c => new { Name = c.CategoryName, ID = c.CategoryID , Description= c.Description})
                  .ToList();
              return Json(list, JsonRequestBehavior.AllowGet);
          }
          else
          {
              var list = db.Categories.Select(c => new { Name = c.CategoryName, ID = c.CategoryID, Description = c.Description })
                  .ToList();
              return Json(list, JsonRequestBehavior.AllowGet);
          }
      }


Что я уже пробовал:

я только что объяснил эту проблему выше.

Richard Deeming

Твой вопрос не имеет смысла. Выпадающий список не поддерживает автозаполнение.

1 Ответов

Рейтинг:
0

Yuriy Loginov

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