【网摘】C#.NET 在 MVC 中动态绑定下拉菜单的方法

1. 已知下拉菜单列表项:

在 Controller 控制器类中输入已下代码

 1 public class DemoController : Controller
 2 {
 3     public ActionResult BindDropDownList()
 4     {
 5         List<SelectListItem> select1 = new List<SelectListItem>
 6         {
 7             new SelectListItem { Text = "内容", Value = "值" },
 8             new SelectListItem 
 9         };
10         
11         ViewData["select1"] = new SelectList(select1, "Value", "Text", "此处为默认项的值");
12         
13         return View();
14     }
15 }

在 View 中使用


1 <%= Html.DropDownList("select1") %>

这种方法简单明了,也比较方便,如果不用从数据库中读取数据的话,可以采用这种方法。


2. 从数据库或者数组中循环读取下拉列表项 

此处省略数据库连接代码,从数据库读出的数据与字符串数组中存储的数据类似,以下就以数组为例。

在 Controller 中控制器类中输入已下代码


 1 public class DemoController : Controller
 2 {
 3     public ActionResult BindDropDownList()
 4     {
 5         string[] texts = new string[] { "一", "二", "三", n };
 6         string[] values = new string[] { "1", "2", "3", n };
 7         
 8         List<SelectListItem> select1 = new List<SelectListItem>();
 9         
10         for (int i = 0; i < texts.Length; i++)
11         {
12             select1.Add(new SelectListItem
13             {
14                 Text = texts[i],
15                 Value = values[i]
16             });
17         };
18         
19         ViewData["select1"] = new SelectList(select1, "Value", "Text", "此处为默认项的值");
20         
21         return View();
22     }
23 }

在 View 中使用


1 <%= Html.DropDownList("select1") %>

其实这种方法看起来跟第1种比较类似,只是读取数据的时候,采用了一个循环的语句。


3.  从数据库中读取某表的所有下拉菜单列表项

此处假设已存在 Category 类,可以通过 Category.GetList() 方法获取该表的所有分类,该表包含 ID 和 Name 两个数据列。

在 Controller 中控制器类中输入已下代码


 1 public class DemoController : Controller
 2 {
 3     public ActionResult BindDropDownList()
 4     {
 5         List<CategoryEntiry> categories = Category.GetAll();
 6         
 7         ViewData["Categories"] = new SelectList(categories, "ID", "Name");
 8         
 9         return View();
10     }
11 }

在 View 中使用


1 // 首先将 ViewData 中的数据转化为 SelectList
2 <% SelectList categories = ViewData["Categories"] as SelectList; %>

4 // 然后才能输出
5 <%= Html.DropDownList("Category", categories) %>

在这里需要注意,就是第3种与前2种在 View 中使用方法稍有不同,当然也可以将前2种方法改为第3种方法,或者将第3种方法改为前2种方法。

时间: 2024-12-19 21:01:44

【网摘】C#.NET 在 MVC 中动态绑定下拉菜单的方法的相关文章

Delphi访问网页中的下拉菜单

Delphi通过TWebBrowser浏览网页,然后访问该网页中的下拉菜单: uses MsHtml;procedure TForm1.Button1Click(Sender: TObject);var  doc: IHTMLDocument2;  coll: IHTMLElementCollection;  iPos, iIndex: Integer;  selElem: IHtmlSelectElement;  optElem: IHtmlOptionElement;begin  doc :

Bootstrap中的下拉菜单

下拉菜单(基本用法) 小伙伴们注意,在Bootstrap框架中的下拉菜单组件是一个独立的组件,根据不同的版本,它对应的文件: ?  LESS版本:对应的源码文件为 dropdowns.less ?  Sass版本:对应的源码文件为 _dropdowns.scss ?  编译后的Bootstrap版本:查看bootstrap.css文件第3004行-第3130行 在使用Bootstrap框架的下拉菜单时,必须调用Bootstrap框架提供的bootstrap.js文件.当然,如果你使用的是未编译版

yii框架中的下拉菜单和单选框

yii中的下拉菜单: 第一种: <?= $form->field($model, 'parent_id')->dropDownList(ArrayHelper::map($data,'cat_id','new_cat_name') ,['prompt' => '请选择父级分类']) ? 第二种: <?= $form->field($model, 'banner_address')->dropDownList(ArrayHelper::map(address::fi

Android ActionBar中的下拉菜单

在ActionBar中添加下拉菜单,主要有一下几个关键步骤: 1. 生成一个SpinnerAdapter,设置ActionBar的下拉菜单的菜单项 2. 实现ActionBar.OnNavigationListener接口,当点击ActionBar的菜单项是进行相应的操作 3. 调用setNavigationMode()方法将ActionBar的操作模型设置为ActionBar.NAVIGATION_MODE_LIST. 注意:这个步骤应该在Activity的onCreate()回调函数时执行

初学者--bootstrap(六)组件中的下拉菜单----在路上(10)

组件---下拉菜单 用于显示链接列表的可切换.有上下文的菜单.下拉菜单的 JavaScript 插件让它具有了交互性. 将下拉菜单触发器和下拉菜单都包裹在 .dropdown 里,或者另一个声明了 position: relative; 的元素.然后加入组成菜单的 HTML 代码.代码与效果如下: <div class="dropdown"> <button class="btn btn-default dropdown-toggle" type=

rf中关于下拉菜单的选择

刚才在使用rf模拟QQ注册的时候,遇到了出生年月日等下拉菜单的选择. 之前混迹于rfs群里,经常能见到select from list by value/label 的关键字,所以尝试了一下. 结果不太理想,去社区搜寻了一下,发现这个下拉菜单不是标准的select下拉菜单,所以改用click element关键字,定位到需要的选项就好了. 其实在webdriver里面遇到下拉菜单也是直接定位然后点击的. 在选择的过程中发现年份的下拉菜单比较长,可能要选择的年份在界面不可见的地方,也就是需要下拉滚

安卓微信中bootstrap下拉菜单无法正常工作的解决方案

bootstrap下拉菜单组件描述:http://v3.bootcss.com/components/#dropdowns 问题环境:安卓4.4.2,微信6.2内置浏览器,bootstrap 3.1.1.1 问题描述:bootstrapV3的下拉菜单组件,在ios的微信浏览器中表现正常,但安卓微信浏览器中无法正常触发,安卓非微信浏览器可以触发 问题触发条件:未知 解决方案:去除button元素的属性data-toggle="dropdown",自己另外写一小段事件监听代码来切换div.

.NET MVC中给下拉框填充数据

在MVC 中绑定模型的视图,很多时候都会用到下拉框,所以在此记录一下根据DataTable中的数据给下拉框填充数据的方法 1 /// <summary> 2 /// 将 DataTable 转成下拉框的填充数据List<SelectListItem>类型 3 /// </summary> 4 /// <param name="dt">数据DataTable</param> 5 /// <param name="

bootstrap中selectpicker下拉框使用方法实例

最近一直在用bootstrap 的一些东西,写几篇博客记录下.... bootstrap selectpicker是bootstrap里比较简单的一个下拉框的组件,先看效果如下: 附上官网api链接,http://silviomoreto.github.io/bootstrap-select/. 下拉框的使用上基本操作一般是:单选.多选.模糊搜索.动态赋值等,下面来看如何使用: 使用方法如下 1.首先需要引入的css和js: bootstrap.css    bootstrap-select.m