【发布时间】:2017-01-13 19:26:44
【问题描述】:
我在视图中添加了@Html.DropDownList,此下拉列表的数据作为 ViewModel 中的属性传递。如何将 Select2 多选插件添加到此下拉列表中。
@Html.DropDownList("ValueId", new SelectList(item.Values, "Id", "Name"), new { @class = "values js-example-basic-multiple", @multiple ="multiple", @id="dropDown"}) | @Html.ActionLink("Delete", "Delete", new { id=item.Id })`
JQuery:
$('#dropDown').select2();
页面渲染后:
`<select class="values js-example-basic-multiple" data-val="true" data-val-number="The field ValueId must be a number." data-val-required="The ValueId field is required." id="dropDown" multiple="multiple" name="ValueId"><option value="4">M</option>
8 红色的 `
脚本:
`<script src="/Content/jquery-3.1.1.min.js"></script>`
<link href="/Content/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
更新:我发现了错误。我正在向我的页面添加一个新的 JQuery 实例,但我忘记了我的 shared_layout 页面已经添加了一个 JQuery 实例。
【问题讨论】:
-
该代码应该可以工作。什么不工作?
-
您的代码看起来完全正确。您确定您正确引用了 select2 库吗?
<select>元素的渲染标记是什么样的?可能是没有从属性中正确设置 ID。如果是这种情况,您需要使用$('#ValueId').select2(); -
下拉列表已生成,但它不是带有搜索字段的多选控件和所有花哨的东西,而只是一个普通的列表框
-
我在页面渲染后检查了代码,并且 id 和 class 设置正确
-
您的开发者工具中是否有任何错误?是否正确加载了 select2 库?
标签: asp.net-mvc jquery-select2 jquery-select2-4