C# 如何更新引导multiselect ListItem
在控制器类中,我从数据库中检索所有项目列表,并将其分配给演示者,然后刷新下拉列表:C# 如何更新引导multiselect ListItem,c#,bootstrap-multiselect,C#,Bootstrap Multiselect,在控制器类中,我从数据库中检索所有项目列表,并将其分配给演示者,然后刷新下拉列表: private Filters UpdateSessionFilter(Filters sessionFilter, int[] some_filters, ...) { var filters = this.SetFilters(); return AddFiltersToSession(filters, some_filters, ...);
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, int[] some_filters, ...)
{
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;
}
private Filters UpdateSessionFilter(Filters sessionFilter,int[]some_Filters,…)
{
var filters=this.SetFilters();
返回AddFiltersToSession(过滤器、某些过滤器等);
}
私有过滤器SetFilters()
{
变量过滤器=新过滤器
{
...
Filters\u One=new MultiFilterPresenter(this.builder.GetTypeOfUsers(),null),
...
};
回流过滤器;
}
专用静态筛选器AddFiltersToSession(筛选器sessionFilter,int[]某些\u筛选器,…)
{
var filters=新过滤器();
MultiFilterPresenter some=新的MultiFilterPresenter(sessionFilter.some.Values,some_filters.OfType().ToList());第一个是ListItem,第二个是所选值列表
过滤器。一些=一些;
..
回流过滤器;
}
这是我的索引页
<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>
}
一些
@Html.DropDownListFor(model=>model.Some.SelectedValue,
Model.Some.Values,新的{id=“somefilter”})
@节脚本{
$(文档).ready(函数(){
多选函数($(“#somefilter”);
$(“按钮”).css(“文本阴影”、“无”);
搜索();
});
函数多选函数(元素){
常量多选选项={
disableIfEmpty:true,
禁用文本:“--”,
最大高度:200,
按钮宽度:“100%”,
onChange:function(){
var selectEle=element.find(“选项:选中”);
如果(选择ele.length>0){
element.next().find(“按钮”).addClass(“selectedFilter”);
}否则{
element.next().find(“按钮”).removeClass(“selectedFilter”);
}
},
非选定文本:“无”,
allSelectedText:“全部”,
显示的数字:2,
onSelectedText:“已选定”
};
元素。多重选择(多重选择);
元素。多重选择(“刷新”);
元素。多选(“重建”);
}
函数搜索(){
API_Loading.show();
var url=BASE_PATH+“搜索/搜索”;
API_ajaxWrapper_Library.ajax(url,
{
方法:“张贴”,
传统的:是的,
数据:{
some:$(“#somefilter”).val()
},
onDone:函数(数据){
$(“#容器”).html(数据);
API_Loading.hide();
},
onFail:函数(结果){
API_Loading.hide();
console.log(result.responseText);
alertify.error(“某些错误”);
},
刷新Dropbox();
});
}
函数refreshDropBox(){
多选函数($(“#somefilter”);
}
}
为过滤器下拉列表检索更新数据的方法工作正常,因为在调试中列表被刷新。问题是屏幕上的情况保持不变,也许我错了,但我最大的疑问不是我必须重新分配给每个下拉列表更新列表