• DropDownList单选与多选下拉框


    一.单选DropDownList传值

    1.添加界面的DropDownList显示值问题

    (1)在方法内添加ViewData的方法: 

     var ad = new UnitsRepository();
                ViewData["datasourceid"] = new SelectList(ad.dsname(), "id", "dsname");
                ViewData["showstyleid"] = new SelectList(ad.showstyle(), "id", "name");

    从而传值到DropDownList下拉框

    (2)在试图中使用DropDownList: 

           数据元:

             @Html.DropDownList("datasourceid", ViewData["datasourceid"] as SelectList, "--请选择--", new { rows = "8", style = "224px" })

    (3)按确认提交后,可使用POST表单提交方法在后台获得下拉框选取的值

    2.编辑界面的DropDownList显示值与取值问题

    (1)在方法内添加ViewData的方法:

    1   var rep = new UnitsRepository().GetViewData(confid);
    2             var ad = new UnitsRepository();
    3             ViewData["datasourceid"] = new SelectList(ad.dsname(), "id", "dsname", rep.dsname);
    4             ViewData["showstyleid"] = new SelectList(ad.showstyle(), "id", "name",rep.showstylename);
    其中rep的值为:
     1  public Units GetViewData(int config)
     2         {
     3             IList<Units> result1;
     4             WiGetLinqDataContext db = new WiGetLinqDataContext();
     5             var res = (from user in db.ApplicationUnits
     6                        where user.id == config
     7                        select new
     8                        {
     9                            dsname = user.ApplicationDatasource == null ? "" : user.ApplicationDatasource.dsname,
    10                            showstylename = user.ApplicationUnitsShowStyle == null ? "" : user.ApplicationUnitsShowStyle.name,
    11                        }).ToList();
    12             result1 = (from u in res
    13                        select new Units
    14                        {
    15                            dsname = u.dsname,
    16                            showstylename = u.showstylename,
    17                        }).ToList();
    18             return result1.FirstOrDefault(); 
    19         }
    ViewData分别调用的ad方法为:
    1 public IQueryable dsname()
    2         {
    3             WiGetLinqDataContext db = new WiGetLinqDataContext();
    4             var dsname = from m in db.ApplicationDatasource select m;
    5             return dsname;
    6         }

    这里需要注意的是,"SelectistListItem"和"ListBox"的继承类"SelectList"可以很好很方便的进行数值的传递,第四个参数就是为DropDownList提供默认显示值,即数据库内提取出来的值

    (2)在试图中的DropDownList对应的也有默认值的显示设置:数据元:

    @Html.DropDownList("datasourceid", ViewData["datasourceid"] as SelectList,Model.dsname)

    因为是强类型试图,所有可以有Model,其中Model.dsname就是后台ViewData获取的SelectValue了。

     
    二.多选DropDownList下拉框
    1.首先引用对象的Css和1.8.11JS脚本,其中Css文件有:
     
     

    2.获取多选下拉框的选项值:         

     @Html.DropDownList("Publishto", ViewData["Publishto"] as SelectList, "--请选择--", new { multiple = "multiple" })

    其中的ViewData获取值方式和前面的单选DropDownList下拉框类似。

    这里遇到的一个不同的情况是,多选项数据来自数据库表中一个对象的其中一个属性,而不是一个表的某个属性的所有对象。

    这里就那该项目为例:

    W,M,T分别代表:"Web平台" , "移动平台" , "客户端平台"

    而这一个字符串存在一个对象的一个属性中,但是页面中显示效果为:

    所以在获取数据时有所不同:

    后台定义一个类和方法:    

     1   public class Publishto
     2         {
     3             public string Code { get; set; }
     4             public string Name { get; set; }
     5 
     6 
     7             public static List<Publishto> GetPublishtoList()
     8             {
     9                 return new List<Publishto>
    10             {
    11                 new Publishto { Code = "w", Name = "Web平台" },
    12                 new Publishto { Code = "m", Name = "移动平台" },
    13                 new Publishto { Code = "t", Name = "客户端平台" }
    14             };
    15             }
    16         }

    分别把W,M,T赋不同的字符串,

    在方法中用ViewData取值时,语法为: 

    ViewData["Publishto"] = new SelectList(Publishto.GetPublishtoList(), "Code", "Name");

    从而是前台显示的时候为对应的字符串。

    3.多选下拉框取值的问题,可以用POST表单获取数据的方式:           

    string Pub = Request.Form["Publishto"].ToString();

    这样,字符串Pub就可以获得类似“W,M"等类型的字符串了,然后存入数据库就行了。

     
  • 相关阅读:
    Web大文件上传断点续传解决方案
    STL 源代码剖析 算法 stl_algo.h -- rotate
    BZOJ 1260 CQOI2007 涂色paint 动态规划
    Shiro学习(总结)
    数组与指针
    Doing Homework again(杭电1789)
    leetCode 75.Sort Colors (颜色排序) 解题思路和方法
    hdu 4786 Fibonacci Tree(最小生成树)
    Havel--Hakimi定理推断可图化 python
    最近小感——一个残疾人写的操作系统
  • 原文地址:https://www.cnblogs.com/yjnet/p/DropDownList.html
Copyright © 2020-2023  润新知