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. WebStorm 2016激活

    最近在网上找到一个激活webStorm 的好东西.博主说对jetbrains下的所有产品都是可以用这种方式激活的...如:PhpStorm,IntelliJ JDEA等. 但别的产品我没有试过.对于w ...

  2. linux用户修改用户shell

    要拒绝系统用户登录,可以将其shell设置为/usr/sbin/nologin或者/bin/false # usermod -s /usr/sbin/nologin username 或者 # use ...

  3. C#调用mciSendString播放音频文件

    mciSendString函数是一个WinAPI,主要用来向MCI(Media Control Interface)设备发送字符串命令. 一.函数的声明如下: private static exter ...

  4. javaScript-继承2种方式

    1.组合继承 组合继承带来的问题很明细就是父类的构造函数会调用两次,如: function Person(name, age, sex) { this.name = name; this.age = ...

  5. htaccess附录:正则表达式、重定向代码

    .htaccess正则表达式 # 位于行首时表示注释. [F] Forbidden(禁止): 命令服务器返回 403 Forbidden错误给用户浏览器 [L] Last rule(最后一条规则): ...

  6. Linux 不常用命令总结

    1. vim编辑模式下,搜索,/user,跳转下一个,小写的n 2.

  7. flask-login 学习(1)

    今天的目标,就是学习 flask-login.争取用1天时间,掌握个大概. 第一步:掌握flask-login的大致使用,具体参考了:https://www.centos.bz/2017/09/fla ...

  8. beego学习笔记(4):开发文档阅读(3)

    通过运行 bee new quickstart 来创建新的项目,其结构如下: quickstart |-- conf | `-- app.conf |-- controllers | `-- defa ...

  9. Python全栈开发之8、装饰器详解

    一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了.转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5486253.html 一.装饰器 装饰器可以使函数执 ...

  10. 第七章:Mapping插件

    Mapping插件 Knockout设计成允许你使用任何JavaScript对象作为view model.必须view model的一些属性是observable的,你可以使用KO绑定他们到你的UI元 ...