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. java的loadrunner脚本案例

    /* * LoadRunner Java script. (Build: 670) *  * ״̬£º²¢·¢²âÊÔͨ¹ý * ²âÊÔÈË£ºÕÔС±ò * ÈÕÆÚ£º2013-09-2 ...

  2. 对 makefile 中 .DEFAULT 的理解

    上例子: all:gao @echo "final".DEFAULT: @echo "In default" 由于 gao 是一个前提条件,但是 makefil ...

  3. Oracle中的dual

    简介,摘自百度百科: Oracle提供的最小的表,不论进行何种操作(不要删除记录),它都只有一条记录——'X'. 例如:执行select * from dual,里面只有一条记录:执行insert i ...

  4. HDFS RAID实现方案(转)

    原文链接:http://blog.chinaunix.net/uid-20196318-id-3213700.html 分布式文件系统主要用于解决海量数据存储的问题,如Goolge.Facebook等 ...

  5. nginx allow 多个ip & ipv4的网段表示方法解析

    参考:https://www.baidu.com/link?url=5aVe_syihQzhHnSDAdLsNNQYqDe_W2GYG1GeIQ130e4mEZbusxQfqGVTdg-dJg8fqM ...

  6. 20165301 2017-2018-2 《Java程序设计》第二周学习总结

    20165301 2017-2018-2 <Java程序设计>第二周学习总结 教材学习内容总结 第二章:基本数据类型与数组 标识符 第一个字符不能是数字 不能是关键字 不能是true.fa ...

  7. Quartz任务调度入门

    Quartz任务调度入门 了解Quartz体系结构Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器.任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念 ...

  8. ECMA6

    let关键字 用来替代var 的关键字,不能重复定义一个变量 举例: for(var i=0; i<5; i++){      setTimeout(function(){           ...

  9. Hilite代码高亮工具

    在用<有道云笔记>等软件时候,软件自身不提供代码高亮功能,对于需要记录code的学习笔记,视觉效果丢失. 有很多在线工具能用来代码高亮,比如oschina就有代码高亮页面用于着色. 但是我 ...

  10. zookeeper的简单使用

    前言 最近项目中要使用基于zookeeper的集中配置管理系统,而对于zookeeper仅在当初使用阿里开源分布式服务调用框架dubbo时简单的了解一下.本 文的主要目的,调用zkclient (ma ...