asp.net mvc中DropDownList的使用.

下拉列表框 以分为两个部分组成:下拉列表默认选项

DropDownList扩展方法的各个重载版本基本上都会传递到这个方法上:

 

public static string DropDownList(this HtmlHelper htmlHelper,
string name,
IEnumerable<SelectListItem>selectList,
string optionLabel,
IDictionary<string,object>htmlAttributes)

没有指定selectList时,该方法自动绑定列表,即从ViewData中查找name所对应的值.

如果提供了selectList,将自动绑定默认选项,即从selectList中找Selected=true的SelectedListItem

selectList里面包含

Items:用于在select标记中出现的列表,通常使用option标记表示。IEnumerable类型。

DataTextField:作为option的text项,string类型。

DataValueField:作为option的value项,string类型。

SelectedValues:选中项的value值,IEnumerable类型。

显然,作为DropDownList来说,选中项不可能为IEnumerable,因此SelectList提供了一个新的属性:

SelectedValue:选中项的value值,object类型。

同时,SelectList的构造函数如下所示:

public SelectList(IEnumerable items, string dataValueField, string dataTextField, object selectedValue)
: base(items, dataValueField, dataTextField, ToEnumerable(selectedValue)) {
SelectedValue = selectedValue;
}

实用例子:

var users=GetUsers();//获取所有用户
var selectList=new SelectList(users,"Age","Name","");
ViewData["list"]=selectList;
@Html.DropDownList("list")

列表:users

显示的选项:"Age"

选项对应的值:"Name"

默认选中的项为 值为"24"的记录

注意:如果以上这种情况,视图使用@Html.DropDownList("list",ViewData["list"] as SelectList)是不会选中默认值的

控制器中用

ViewData["ProvinceId"] = Provinces.Select(o => new SelectListItem

            {

                Selected = o.ProName == "河南省" ? true : false,

                Text = o.ProName,

                Value = o.ProID.ToString()

            });

前端用:这样配合就会有默认值

@Html.DropDownList("ProvinceId")

服务端

  1. ViewData["category"] = new SelectList(GetAll(), "ID", "CategoryName");

这个数据源 ID=name是一一对应的关系

前端

@Html.DropDownList("dropdownlistID",ViewData["category"] as SelectList,"请选择") 默认显示是"请选择"
@Html.DropDownList("controlID",ViewData["category"] as SelectList,Model.CategoryName) 默认显示值是Model.CategoryName
@Html.DropDownListFor(o =>o.ID, ViewData["category"] as IEnumerable<SelectListItem>, "请选择", new { id="parentID"})

这个例子,=>o.ParentID就表示,o.ParentID等于数据源中ID的记录将被选中

@Html.DropDownList("priex",(IEnumable(SelectListItem))ViewData["category"],"全部",new{onchange="GetList()"})

View参数说明:1.指定DropDownList的ID

2.指定SelectList

3.可以指定默认值

Controller部分

public ActionResult Add()
{
ViewData["category"] = new SelectList(GetAll(), "ID", "CategoryName");
return View();
}

Html.DropDownListFor的使用

@Html.DropDownListFor(o=>o.ID,
new[]{
new SelectListItem(){Text="河南",Value=""},
new SelectListItem(){Text="河北",Value=""}
},
"请选择一个"
)

前端

 @Html.DropDownListFor(o=>o.ParentID,ViewData["category"] as IEnumerable<SelectListItem>,"请选择")

第一个参数:上级ID

第二个参数:SelectListItem集合

第三个参数:设置默认值

public ActionResult Add()
{
ViewData["category"] = new SelectList(GetAll(), "ID", "CategoryName");
//数据, ID, Value
return View();
} @Html.DropDownList("role", ViewData["role"] as IEnumerable<SelectListItem>)

asp.net mvc中DropDownList的更多相关文章

  1. ASP.NET MVC中DropDownList的使用

    Asp.net MVC中的DropDownLists貌似会让一开始从Asp.net Forms转过来的程序员造成不少迷惑.这篇文章讲述了为了使用DropDownLists,你需要在Asp.Net MV ...

  2. [摘]在ASP.NET MVC中使用DropDownList

    在ASP.NET MVC中,尽管我们可以直接在页面中编写HTML控件,并绑定控件的属性,但更方便的办法还是使用HtmlHelper中的辅助方法.在View中,包含一个类型为HtmlHelper的属性H ...

  3. ASP.NET MVC中使用DropDownList

    在ASP.NET MVC中,尽管我们可以直接在页面中编写HTML控件,并绑定控件的属性,但更方便的办法还是使用HtmlHelper中的辅助方法.在View中,包含一个类型为HtmlHelper的属性H ...

  4. 在ASP.NET MVC中使用DropDownList

    在ASP.NET MVC中,尽管我们可以直接在页面中编写HTML控件,并绑定控件的属性,但更方便的办法还是使用HtmlHelper中的辅助方法.在View中,包含一个类型为HtmlHelper的属性H ...

  5. <转>ASP.NET学习笔记之在ASP.NET MVC中使用DropDownList

    看到一篇关于dropdownlist的用法很好的阐述,比较清楚,留着,防止以后自己不记得,还可以瞅瞅. 在ASP.NET MVC中,尽管我们可以直接在页面中编写HTML控件,并绑定控件的属性,但更方便 ...

  6. 在 ASP.NET MVC 中使用 HTML Helpers 的那些事

    在 ASP.NET MVC 中使用 HTML Helpers 方法,可以返回得到标准的 HTML 标签,就像 <input>.<button> 或者 <img> 等 ...

  7. Asp.Net MVC中DropDownListFor的用法(转)

    2016.03.04 扩展:如果 view中传入的是List<T>类型 怎么使用 DropList 既然是List<T> 那么我转化成 T  List<T>的第一个 ...

  8. Asp.Net MVC中DropDownListFor的用法

    在Asp.Net MVC中可以用DropDownListFor的方式来让用户选择已定列表中的一个数值.用法不复杂,这里简单做一个记录. 首先我们要定义一个 Model ,用户在 DropDownLis ...

  9. 转:Asp.Net MVC中DropDownListFor的用法

    在Asp.Net MVC中可以用DropDownListFor的方式来让用户选择已定列表中的一个数值.用法不复杂,这里简单做一个记录. 首先我们要定义一个 Model ,用户在 DropDownLis ...

随机推荐

  1. pycharm设置字体大小

    pycharm 是很好的一个IDE,在windows下,和macOS下,都能很好的运行.唯一缺点是启动慢. 默认字体太小,在mac下,需要瞪大24K氪金狗眼才能看清. 为了保护好眼睛,我们需要把字体调 ...

  2. mysq配置

    mysql运维 1.mysql配置文件:/etc/my.cnf mysql日记文件 :安装时候配置的,可以通过ps aux|grep mysqld 查询 ps aux|grep mysqld mysq ...

  3. 每天一条linux命令(1):ls命令

    ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...

  4. 牛B的日本精神

    在汤森路透评选出的<2015全球创新企业百强>榜单里,日本以40家高居榜首,力压美国的35家.而中国内地无一入围.   在中国媒体上,我们见到的日本是“失去的20年”,经济衰退.创新能力丧 ...

  5. kernel编译速度提高

    1. 使用tmpfs来代替部分IO读写 2. ccache,可以将ccache的缓存文件设置在tmpfs上,但是这样的话,每次开机后,ccache的缓存文件会丢失 3.distcc,多机器编译 4.将 ...

  6. 欧拉回路&欧拉通路判断

    欧拉回路:图G,若存在一条路,经过G中每条边有且仅有一次,称这条路为欧拉路,如果存在一条回路经过G每条边有且仅有一次, 称这条回路为欧拉回路.具有欧拉回路的图成为欧拉图. 判断欧拉通路是否存在的方法 ...

  7. Ceph 时钟偏移问题 clock skew detected 解决方案--- 部署内网NTP服务

    告警:HEALTH_WARN clock skew detected on mon.ip-10-25-195-6; 8 requests are blocked > 32 sec; Monito ...

  8. Java的Stack类实现List接口真的是个笑话吗

        今天在网上闲逛时看到了这样一个言论,说“Java的Stack类实现List接口的设计是个笑话”.   当然作者这篇文章的重点不是这个,原本我也只是一笑置之,然而看评论里居然还有人附和,说“Ja ...

  9. 使用 PHP 构建的 Web 应用如何避免 XSS 攻击

    本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据:然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态 ...

  10. 【hdoj_1715】大菲波数(大数+100000000进制)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1715 本题采用大数加法即可解决.采用100000000进制速度更快. C++代码如下: #include& ...