Javascript 使用Selected和select2插件的Dependent multiselect下拉列表
这是我在视图中编写的代码:Javascript 使用Selected和select2插件的Dependent multiselect下拉列表,javascript,c#,jquery,asp.net-mvc,multi-select,Javascript,C#,Jquery,Asp.net Mvc,Multi Select,这是我在视图中编写的代码: <div class="col-lg-12" style="margin-bottom: 20px;"> <div class="form-group"> <label class="col-sm-3 control-label" style=" margin-top: 14px; ">Domains <font size="3" color="red">*</fon
<div class="col-lg-12" style="margin-bottom: 20px;">
<div class="form-group">
<label class="col-sm-3 control-label" style=" margin-top: 14px; ">Domains <font size="3" color="red">*</font></label>
<br />
<div class="col-sm-4" style="width:50%;">
@Html.ListBoxFor(m => m.SelectedDomains, Model.AllDomains,
new { @class = "chosen", multiple = "multiple", id = "drpDomains", style = "width: 350px;",onchange="FillDomain();" })
</div>
</div>
</div>
<div class="col-lg-12" style="margin-bottom: 20px;">
<div class="form-group">
<label class="col-sm-3 control-label" style=" margin-top: 14px; ">Domains new categories <font size="3" color="red">*</font></label>
<br />
<div class="col-sm-4" style="width:50%;">
@Html.ListBoxFor(m => m.SelectedDomainCategories, Enumerable.Empty<SelectListItem>(),
new { @class = "select2", multiple = "multiple", id = "multidomaincategory", style = "width: 350px;" })
</div>
</div>
</div>
<link href="~/Scripts/MultiSelect/chosen.css" rel="stylesheet" />
数据访问层(事务):
public IEnumerable GetDepCategories(字符串域)
{
//GetDepCategories方法-基于域获取类别
PTS_CommonEntities objentity=新PTS_CommonEntities();
列出所有技能=新建列表();
List catnames=objentity.usp_GetCatListBasedOnDomains(domains.ToList();
foreach(在catnames中为其设置变量)
{
添加(新建SelectListItem{Value=it.CategoryID.ToString(),Text=it.CategoryName});
}
返回allskills.AsEnumerable();
}
当我清除(关闭)域中的选定项时,将从列表中清除相应的类别,但不在文本框中
形象
形象
如您所见,列表正在清除,但所选项目仍显示在UI中
有人能找出为什么在清除项目后仍显示这些项目吗?因为您试图清除错误的元素
#multidomaincategory
是包含所有值的select2列表,在该元素之后有一个动态span类呈现到页面,请查看select2在浏览器中生成的html。尝试:
$('#multidomaincategory').next().find('li').html('');
由于$(“#multidomaincategory”).html(“”),它们被从列表中清除代码>清除类别列表的html,而不是文本框中呈现的文本元素
虽然更好的方法是:$(“#multidomaincategory”)。选择2('data',null)
嘿@Martin,谢谢你的回答,但是当我使用你发布的两行时,呈现的文本元素没有被清除。您知道可以清除渲染文本的任何其他事件吗elements@jagadeesh64使用问题浏览器中呈现的select2 html编辑文章。
[HttpPost]
public ActionResult FillIndustry1(string Domain)
{
JArray jsonMembersArr = (JArray)JsonConvert.DeserializeObject(Domain);//convert SymptomString from json string to array
ProfessionalTrans objprofessionaltrans = new ProfessionalTrans();
string listdomains = "";
foreach (var a in jsonMembersArr)
{
listdomains = string.Join(",", a);
}
var DomainCategories = objprofessionaltrans.GetDepCategories(listdomains);
return Json(DomainCategories.ToList());
}
public IEnumerable<SelectListItem> GetDepCategories(string domains)
{
//GetDepCategories method - To get categories based on Domains
PTS_CommonEntities objentity = new PTS_CommonEntities();
List<SelectListItem> allskills = new List<SelectListItem>();
List<GetCatListbasedDomain> catnames = objentity.usp_GetCatListBasedOnDomains(domains).ToList();
foreach (var it in catnames)
{
allskills.Add(new SelectListItem { Value = it.CategoryID.ToString(), Text = it.CategoryName });
}
return allskills.AsEnumerable();
$('#multidomaincategory').next().find('li').html('');