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

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

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

我注意到在 SO 上有很多类似的主题,不幸的是,我需要在不使用 AJAX 调用的情况下完成此操作,并且需要在 MVC5 中完成而不进行回发(如果可能)。

  1. 这可能吗?
  2. 我从哪里开始?有没有我可以借鉴的例子?

最佳答案

实际上,没有 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证明了这种方法

关于c# - 根据另一个 DropDownList 的选择动态填充 DropdownList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39010653/

相关文章:

c# - 使用整数设置枚举属性并验证参数

c# - 为什么可空的模式匹配会导致语法错误?

asp.net - ASP.NET MVC 3 应用程序中每个浏览器选项卡/窗口的新 session

c# - ASP.NET MVC 表单验证每次都失败

c# - 从具体化 'System.Int32' 类型到 'System.Double' 类型的指定转换无效

c# - Filehelpers CSV 解析。如何使用 FieldQuoted 属性?

c# - 当第二个数字大于第一个数字时,为什么 Mod 运算符返回第一个数字?

c# - 将 RAW 图像文件读取为 GDI+ 位图

c# - ServiceStack不显示元数据页面

asp.net-mvc - 一旦写入ValidationSummary(),就从ModelState中移除ModelErrors