根据另一个DropDownList的选择动态填充DropdownList

时间:2016-08-18 05:39:05

标签: c# asp.net asp.net-mvc asp.net-mvc-5

我需要能够根据先前DropDownList的选择来填充DropDownList。

我注意到在SO上有类似的主题,遗憾的是,我需要在没有回发的情况下使用AJAX调用来完成这项操作,并且需要在MVC5中完成(如果可能的话)。

  1. 这可能吗?
  2. 我从哪里开始?我有什么例子吗?

1 个答案:

答案 0 :(得分:4)

实际上可以在没有AJAX的情况下完成,但仍然需要一些Javascript:

第一个和第二个下拉列表都应预先显示所有可用选项。对于第二个下拉列表中的每个选项,指定第一个下拉列表的值应该是可见的。例如:

<select id="firstDd">
   <option value="car">Cars</option>
   <option value="plane">Planes</option>
</select >


<select id="secondDd">
   <option value="ferrari" data-display-on="car">Ferrari</option>
   <option value="bugatti" data-display-on="car">Bugatti</option>
   <option value="747" data-display-on="plane">Boeing 747</option>
   <option value="757" data-display-on="plane">Boeing 757</option>
</select >

现在使用一些简单的javascript,您可以根据第一个下拉选项的值切换第二个下拉选项的可见性:

$('#firstDd').change(function(){
  var value = $(this).val();
  if(value)
  {
    var $secondDd = $('#secondDd');
    var $selectedOption = $('option:selected', $(this));
    $('option', $secondDd).hide();
    $('option[data-display-on="'+value+'"]',$secondDd).show();    
  }
  $($secondDd).val(null);
})

$('#firstDd').change();

以下是展示此方法的working JSFiDDLE