代码之家  ›  专栏  ›  技术社区  ›  akkapolk

当jQuery更新@Html.DropDownList时,如何为@Html.DropDownListFor(selectpicker类)选择数据?

  •  0
  • akkapolk  · 技术社区  · 6 年前

    我正在用ASP.NET-MVC开发web应用程序。

    型号:

    public partial class MyModel
    {
        public string TEST { get; set; }
    }
    

    Html格式:

    @model IList<MyModel>
    @Html.DropDownList("dropDownListSelectToAnotherDropDownList", (SelectList)ViewBag.testList[0], null, new { id = "dropDownListSelectToAnotherDropDownList", title = "[--Select to all--]", @class = "selectpicker form-control", data_style = "btn btn-default", data_width = "100%", data_live_search = "true", data_size = "9" })
    @for (var i = 0; i < Model.Count; i++)
    {
        @Html.DropDownListFor(m => Model[i].TEST, (SelectList)ViewBag.testList[i], null, new { id = "dropDownListTest" + i, title = "[--Select Test--]", @class = "selectpicker form-control", data_style = "btn btn-default", data_width = "100%", data_live_search = "true", data_size = "9" })
    
    }
    

    $('#dropDownListSelectToAnotherDropDownList').on('keyup change', function () {
        @for (var i = 0; i < Model.Count; i++)
        {
            $('dropDownListTest' + i).val($(this).val());
            //$('dropDownListTest' + i).selectpicker('val', $(this).val());
        }
    });
    

    按照上面的代码,我会得到 还有很多 下拉列表测试 我想在以下情况下创建事件 下拉列表选择另一个下拉列表 下拉列表选择另一个下拉列表 然后设置为“全部” . 但这不是工作。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Tetsuya Yamamoto    6 年前

    首先,你应该删除所有 id 定义并使用单独的类名 <select> 创建的元素 DropDownListFor 在回路内部,例如。 dropDownListTest :

    @for (var i = 0; i < Model.Count; i++)
    {
        @Html.DropDownListFor(m => Model[i].TEST, (SelectList)ViewBag.testList[i], null, new { title = "[--Select Test--]", 
                              @class = "selectpicker form-control dropDownListTest", ... })
    }
    

    然后,使用 jQuery.each() <选择> 具有的元素 id="dropDownListSelectToAnotherDropDownList"

    // example 1
    $('#dropDownListSelectToAnotherDropDownList').on('keyup change', function () {
        val selectedValue = $(this).val();
    
        $('.dropDownListTest').each(function () {
            $(this).val(selectedValue);
        })
    });
    
    // example 2
    $('#dropDownListSelectToAnotherDropDownList').on('keyup change', function () {
        val selectedValue = $(this).val();
    
        $.each($('.dropDownListTest'), function () {
            $(this).val(selectedValue);
        })
    });