如何更新bootstrap-multiselect ListItem

问题描述

在Controller类中,我从数据库中检索所有项目列表,并将它们分配给演示者并刷新下拉列表:

private Filters UpdateSessionFilter(Filters sessionFilter,int[] some_filters,...)
        {
            var filters = this.SetFilters();
            return AddFiltersToSession(filters,some_filters,...);
        }

private Filters SetFilters()
        {
            var filters = new Filters
            {
                ...
                Filters_One = new MultiFilterPresenter(this.builder.GetTypeOfUsers(),null),...
            };

            return filters;
        }

private static Filters AddFiltersToSession(Filters sessionFilter,...)
        {
            var filters = new Filters();

            MultiFilterPresenter some = new MultiFilterPresenter(sessionFilter.Some.Values,some_filters.OfType<int>().ToList()); the first is ListItem,the second list of selected values

            filters .Some = some;
            ..

            return filters;
        }

这是我的索引页面

<div class="filter-container clearfix">
      <div class="row">
          <div class="col">
              <label class="filter-name">Some</label>
              <div class="inputGroupContainer">
                  @Html.DropDownListFor(model => Model.Some.SelectedValue,Model.Some.Values,new { id = "somefilter" })
              </div>
          </div>
</div>
@section Scripts {
    <script type="text/javascript" src="~/Scripts/bootstrap-multiselect.js"></script>
    <script type="text/javascript" src="~/Scripts/alertify.min.js"></script>
    <script>
        $(document).ready(function () {
            multiselectFunction($("#somefilter"));

            $("button").css("text-shadow","none");
            search();
        });

        function multiselectFunction(element) {
            const multiSelectOpt = {
                disableIfEmpty: true,disabledText: " -- ",maxHeight: 200,buttonWidth: "100%",onChange: function() {

                    var selectEle = element.find("option:selected");
                    if (selectEle.length > 0) {
                        element.next().find("button").addClass("selectedFilter");
                    } else {
                        element.next().find("button").removeClass("selectedFilter");
                    }
                },nonSelectedText: "None",allSelectedText: "All",numberDisplayed: 2,onSelectedText: "Selected"
            };
            element.multiselect(multiSelectOpt);
            element.multiselect('refresh');
            element.multiselect('rebuild');
        }

        function search() {
            API_Loading.show();
            var url = BASE_PATH + "Search/Searching";

            API_ajaxWrapper_Library.ajax(url,{
                    method: "POST",traditional: true,data: {
                        some: $("#somefilter").val()
                    },onDone: function (data) {
                        $("#container").html(data);
                        API_Loading.hide();
                    },onFail: function(result) {
                        API_Loading.hide();
                        console.log(result.responseText);
                        alertify.error("Some errors");
                    },refreshDropBox();
                });
        }

        function refreshDropBox() {
            multiselectFunction($("#somefilter"));
        }
    </script>
}

检索过滤器下拉列表的更新数据的方法正常工作,因为在调试列表时刷新了问题,问题是屏幕上的情况保持不变,也许我是错的,但是我最大的疑问不是我是否必须重新分配每个下拉列表更新列表?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)