Заполнить один выпадающий список другим выбранным значением

#c# #asp.net #asp.net-mvc #asp.net-core #asp.net-mvc-4

#c# #asp.net #asp.net-mvc #asp.net-ядро #asp.net-mvc-4

Вопрос:

У меня есть два выпадающих списка, и я заполнил их следующим образом :

  private List<Client> Client()
        {
            var allClients= _db.tboClient.Select(x =>
            new Tecnico
            {
                Id = x.Id,
                Nome = x.Nome
            }).ToList();
            return allClients;
        }

        private List<Pricerice> Price()
        {
            var allPrice = _db.tboPrice.Select(x =>
            new Cliente
            {
                Id = x.Id,
                Nome_azienda = x.Nome_azienda
            }).ToList();
            return allPrice ;
        }
  

А затем некоторые методы, которые я помню Client() и Price() . Я загружаю представление следующим образом :

 public IActionResult Create()
{
    ViewBag.Price= Pricei();
    ViewBag.Clienti = CLienti();
    return View();
}
  

Это HTML:

  <div class="dropdown">
      @Html.DropDownListFor(m => m.CLienti, new SelectList(ViewBag.CLienti, "Id", "Nome_azienda"), new { @id = "ddlCLienti", @class = "btn btn-primary dropdown-toggle  mr-3" })
 </div>

 <div class="dropdown">
       @Html.DropDownListFor(m => m.Price, new SelectList(ViewBag.Price, "Id", "Nome"), new { @id = "ddlClienti", @class = "btn btn-primary dropdown-toggle  mr-3" })
</div>
  

Я хочу заполнить второй (цена) выпадающий список на основе значения, выбранного из первого выпадающего списка.

Комментарии:

1. Пожалуйста, обратите внимание, что вы устанавливаете один и тот же идентификатор » ddlClienti » для двух выпадающих списков, второй может быть » ddlPrice «.

Ответ №1:

Я хочу заполнить второй (цена) выпадающий список на основе значения, выбранного из первого выпадающего списка.

Чтобы выполнить вышеуказанное требование реализации каскадного выпадающего списка, вы можете попытаться заполнить второй выпадающий список на основе предыдущего выбора первого выпадающего списка в событии dorpdown «ddlCLienti», change как показано ниже.

 <script>
    $(function () {
        $("select#ddlCLienti").change(function () {
            var CLienti = $(this).val();

            $("select#ddlPrice").empty();

            $.getJSON(`/your_controller_name_here/GetPriceBySelectedCLienti?CLienti=${CLienti}`, function (data) {
                //console.log(data);
                $.each(data, function (i, item) {
                    $("select#ddlPrice").append(`<option value="${item.id}">${item.nome}</option>`);
                });
            });
        })
    })
</script>
  

GetPriceBySelectedCLienti метод действия

 public List<Price> GetPriceBySelectedCLienti(int CLienti)
{
    //query data based on selected CLienti

    //...