使用 Select2 jquery 进行多选的 ASP MVC 下拉列表
Posted
技术标签:
【中文标题】使用 Select2 jquery 进行多选的 ASP MVC 下拉列表【英文标题】:ASP MVC Dropdown list with Multiple Select using Select2 jquery 【发布时间】:2018-01-02 21:10:27 【问题描述】:我有一个控件,它需要有多个选择选项来创建令牌。每当创建或删除令牌时都会生成数据库调用。现在的问题是,当我从服务器加载新页面时,控件中没有令牌。以下是我的 Razor 代码:
@html.DropDownList("ProjectIds", new MultiSelectList(projDDL.Items, "key", "value",Model.SelectedProject), new @class = "form-control selectorBind", multiple = "multiple",@id= "myid" data_rowid = "ID", data_type="Project",data_myattr= "attr" )
projDDL 是一个包含下拉列表项的字典
SelectedProject 也是包含选定项目键、值的字典
我曾尝试关注此链接MVC DropDown list with MultipleSelect,但没有成功。
从服务器端加载令牌是我的问题。虽然我知道我可以从 Jquery 轻松完成,但我想使用 Razor。
解决方案
查看@Html.DropDownListFor
与@Html.ListBoxFor
@Html.ListBoxFor(y => y.SelectedProjects, new MultiSelectList(projDDL.Items, "key", "value", Model.SelectedProjects), new @class = "form-control selectorBind", multiple = "multiple", @id = @Model.SkillType+"Project_" + Model.ID, data_rowid = @Model.ID, data_type = "Project", data_myattr = "FK_ProjectID" )
【问题讨论】:
使用ListBoxFor()
而不是DropDownListFor()
来生成多选。 SelectedProjects
需要是简单值的集合(与您的选项的值匹配)而不是 Dictionary
另请参阅this answer。并且您的模型是否包含名为 ProjectIds
i 的属性,如果是,那么您的 Model.SelectedProject
参数将被忽略 - 它的 ProjectIds
的值决定了哪些选项被选中
我想要this 之类的东西。 ListBoxFor()
不是我想要的。如果您希望我为SelectedProjects
使用集合,而不是用于构建下拉菜单的预定义项目,它们也应该是集合吗?
是的!阅读链接以解释原因。它对外观没有影响-(它们生成相同的 html)-您应用 jquery 插件
答案信息量大,空气清新。感谢您的时间和关注。
【参考方案1】:
查看@Html.DropDownListFor
和@Html.ListBoxFor
之间的区别以及何时使用什么
@Html.ListBoxFor(y => y.SelectedProjects, new MultiSelectList(projDDL.Items, "key", "value", Model.SelectedProjects), new @class = "form-control selectorBind", multiple = "multiple", @id = @Model.SkillType+"Project_" + Model.ID, data_rowid = @Model.ID, data_type = "Project", data_myattr = "FK_ProjectID" )
【讨论】:
以上是关于使用 Select2 jquery 进行多选的 ASP MVC 下拉列表的主要内容,如果未能解决你的问题,请参考以下文章
求jquery版的多选树形下拉框的插件(Multiple ComboTree)?