Asp.net mvc 2 将listboxFor-MVC 2的选择限制为单选
我正在使用以下代码生成一个列表框Asp.net mvc 2 将listboxFor-MVC 2的选择限制为单选,asp.net-mvc-2,listbox,Asp.net Mvc 2,Listbox,我正在使用以下代码生成一个列表框 <%: Html.ListBoxFor(m => m.Subscribers, new List<SelectListItem>(), new { @class = "list_style_Wizard" })%> m.Subscribers,new List(),new{@class=“List\u style\u Wizard”})%> 但是我们可以从列表框中选择多个项目。。如何将其限制为单选???Html。List
<%: Html.ListBoxFor(m => m.Subscribers, new List<SelectListItem>(), new { @class = "list_style_Wizard" })%>
m.Subscribers,new List(),new{@class=“List\u style\u Wizard”})%>
但是我们可以从列表框中选择多个项目。。如何将其限制为单选???
Html。ListBoxFor
用于呈现多选列表框。供单选使用
Html.DropDownListFor
<%: Html.DropDownListFor(m => m.Subscribers, listOfsubscribers, new { @class = "list_style_Wizard" }) %>
m.订阅者,订阅者列表,新的{@class=“list\u style\u向导”})%>
当呈现为列表框时,HTML帮助程序DropDownListFor
和ListBoxFor
似乎添加了multiple
属性。我结合使用DropDownListFor
/ListBoxFor
和jQuery选择器来删除multiple
属性。在使用剃须刀时:
@Html.DropDownListFor(m => m.SelectedId, Model.SelectList,
new { size = 10, @class = "selectOneListBox" })
在JavaScript中:
$(".selectOneListBox").livequery(function () {
$(this).removeAttr('multiple');
});
我相信您也可以编写自己版本的HTML helper例程,它不会弹出
多个属性。通常单选列表框比下拉列表框更好。很遗憾,Microsoft选择不将此选项设置为可选。不建议再使用Livequery。因此,最好在加载页面时删除该属性:$(document).ready(function(){$(“.selectOneListBox”).removeAttr('multiple');});很好,看。我喜欢livequery,它使编写不引人注目的JavaScript变得简单,特别是对于动态创建的内容。但是,它确实会影响性能。您的建议将执行得更好,并且可能最适合这种情况。