Asp.net MVC3 关于@Html中ListBox、DropDownList使用

时间:2022-05-07 19:43:13

ListBox,DropDownList都是通过使用指定的 HTML 帮助器和窗体字段的名称,返回单选select 元素。

同属于SelectExtensions 类

1、@Html.ListBox()
通过使用指定的 HTML 帮助器、窗体字段的名称、指定的列表项和指定的 HTML 特性,返回多选 select 元素
主要参数有
string name, //要返回的窗体字段的名称
IEnumerable<SelectListItem> selectList, // 一个用于填充下拉列表的 SelectListItem 对象的集合。
IDictionary<string, Object> htmlAttributes // 一个对象,其中包含要为该元素设置的 HTML 特性。可以设置宽度等样式

[csharp] view plain copy
  1. @{  
  2.            List<string> listBox=new List<string>();  
  3.            listBox.Add("第一");  
  4.            listBox.Add("第二");  
  5.            listBox.Add("第三");   
  6.        }       
  7.       @{  
  8.             List<string> listBoxSelectd=new List<string>();  
  9.             listBoxSelectd.Add("第一");  
  10.             listBoxSelectd.Add("第二");  
  11.        
  12.       }  

例:绑定listBox信息,并初始以“第二”为选中状态,指定一个选中状态
调用:
[csharp] view plain copy
  1. @Html.ListBox("listName"new SelectList(listBox,"第二"), new { style="width:200px"})  
  2.      输出:  
  3.      <select id="listName" multiple="multiple" name="listName" style="width:200px">  
  4.             <option>第一</option>  
  5.             <option selected="selected">第二</option>  
  6.             <option>第三</option>  
  7.     </select>  
用new MultiSelectList()可以指定返回多个选中的值
[csharp] view plain copy
  1. @Html.ListBox("moreListName"new MultiSelectList(listBox, listBoxSelectd))  
  2.  输出:  
  3.  <select id="moreListName" multiple="multiple" name="moreListName">  
  4.  <option selected="selected">第一</option>  
  5.  <option selected="selected">第二</option>  
  6.  <option>第三</option>      
  7.  </select>  
获取选中项:
在页面提交的时候,用request或者FormCollection collection对象进行值的获取
如Request["listName"]、collection["moreListName"] 获取多个选择值时,中间以","号隔开返回
    b.@Html.ListBoxFor()
    通过使用指定的 HTML 帮助器、窗体字段的名称、指定的列表项和指定的 HTML 特性,返回多选 select 元素
常用方法: [csharp] view plain copy
  1. @Html.ListBoxFor(mo => mo.name, new SelectList(Model.Students, "ID""Name"),  
  2.     new {style="width:200px"})  
Model.Students:为输出的list对象
ID,Name分别为对象中的两个属性
2、@Html.DropDownList()
返回select的下拉列表框
使用例子:

[csharp] view plain copy
  1.   @Html.DropDownList("ddlValue"new SelectList(new[] { "One""Two" },"Two"),  
  2. new { style="width:200px"})  
  3. 输出:  
  4.  <select id="ddlValue" name="ddlValue" style="width:200px">  
  5.  <option>One</option>  
  6.  <option selected="selected">Two</option>  
  7.  </select>  
@Html.DropDownListFor()
用法和@Html.ListBoxFor()类似,主要是针对强类型 [csharp] view plain copy
  1. @Html.DropDownListFor(mo => mo.name, new SelectList(Model.Students, "ID""Name"),  
  2.     new {style="width:200px"})  
返回下来列表框 [html] view plain copy
  1. <pre></pre>  
  2. <pre></pre>  
  3. <pre></pre>  
  4. <pre></pre>  
  5.