1 selectlist multi-select mvchtmlstring asp.net-mvc-2
在MVC中,SelectList派生自MultiSelectList.我不能说出他们之间的区别.对于两者,我必须告诉它选择多个项目(我希望不必这样做,因为名称中有"multi").
如果在下面的代码中用"MultiSelectList"替换"SelectList",它将生成相同的HTML:
<%
var leftSelectList = new SelectList(Model.LeftSide,"Key","Value");
var attrs = new SortedDictionary<string, object> {{"class", "ui-widget"}};
MvcHtmlString disabledStyle = MvcHtmlString.Create(Html.Encode("'width:50px;'"));
attrs.Add("style", disabledStyle);
attrs.Add("multiple", "multiple");
attrs.Add("size", "5"); /*-- how many items to show--*/
var leftItems = Html.DropDownList("ddlLeftItems", leftSelectList, attrs); %>
<%= leftItems.ToHtmlString()%>
Run Code Online (Sandbox Code Playgroud)
生成的HTML是:
<select class="ui-widget" id="ddlLeftItems" multiple="multiple" name="ddlLeftItems" size="5" style="&#39;width:50px;&#39;">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="5">E</option>
<option value="9">I</option>
</select>
Run Code Online (Sandbox Code Playgroud)
那么,我应该使用哪一个?谢谢.
SelectList对象不生成HTML.它会创建一个项目列表,然后可以在其他地方使用.DropDownList帮助函数是生成页面上使用的HTML的原因,这就是您看到完全相同的HTML的原因.
SelectList对象派生自MultiSelectList,但为您提供了一个属性来获取单个选定值(称为SelectedValue).MultiSelectList只有一个名为SelectedValues的属性,它包含所有选定的值.
因此,如果您正在进行多选列表,那么使用哪一个并不重要,但如果您正在执行单选列表,那么您应该使用SelectList,因为它可以更容易地获取所选值.
| 归档时间: |
|
| 查看次数: |
3499 次 |
| 最近记录: |