问题描述
在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 (将#修改为@)