zoukankan      html  css  js  c++  java
  • C#.NET 在 MVC 中动态绑定下拉菜单的方法

    原文转至http://www.cnblogs.com/rongstar/archive/2009/06/26/bindselect.html

    在 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; %>
    3 
    4 // 然后才能输出
    5 <%= Html.DropDownList("Category", categories) %>

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

  • 相关阅读:
    Cobbler自动装机试验
    内嵌元素、块元素、内联块的区分以及内嵌元素的问题
    内嵌元素、块元素、内联块的区分以及内嵌元素的问题
    MyEclipse构建WebService案例
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/fannyatg/p/2352813.html
Copyright © 2011-2022 走看看