• MVC3.0入门学习笔记Razor@Html.DropDownList


    最近刚学习使用mvc 遇到select问题 一个页面N多项select 编辑的时候如何让他选中我们指定的值成了一个问题 当然解决方法很多 js前台绑定 或者输出html的时候循环处理 现在我们使用@Html.DropDownList 来处理这个

    网上搜索了下相关的 都是基于lambda表达式写的 看了头晕 lambda表达式我也不会 所以自己参考msdn 把这个功能实现了下

    实际中可能有这样一种情况 某个select 的option是数据库字典里取出来的 展示到页面上的效果 如

    <select style=" 185px;" class="inputstyle1" id="ImportAmount" name="ImportAmount">
    	<option value="0">请选择进口额</option>
    	<option value="1">人民币10万元以下</option>
    	<option value="2">人民币10万元-30万元</option>
    	<option value="3">人民币30万元-50万元</option>
    	<option value="4">人民币50万元-100万元</option>
    	<option value="5">人民币100万元-200万元</option>
    	<option value="6">人民币200万元-300万元</option>
    	<option value="7">人民币300万元-500万元</option>
    	<option value="8" selected="selected">人民币500万元-700万元</option>
    	<option value="9">人民币700万元-1000万元</option>
    	<option value="10">人民币1000万元-2000万元</option>
    	<option value="11">人民币2000万元-3000万元</option>
    	<option value="12">人民币3000万元-5000万元</option>
    	<option value="13">人民币5000万元-1亿元</option>
    	<option value="14">人民币1亿元以上</option>
    
    </select>
    

     我们可以这样写

     IList<xxxx.Service.Model.DictionaryModel> certificationTypeModel = ViewData["importAmountModel"] as IList<xxxxx.Service.Model.DictionaryModel>;

    Controllers

     IDictionaryService  IDict = new DictionaryService();
    
    IList<DictionaryModel> importAmountModel= IDict.GetByDicType("moneyType");
    

     view

    @{
        IList<xxxx.Service.Model.DictionaryModel> importAmount= ViewData["importAmountModel"] as IList<xxxx.Service.Model.DictionaryModel>;
     
    }
    <select id="ImportAmount" name="ImportAmount"> @foreach (var item in importAmount) { <option value="@item.Dickey">@item.DicName</option> } </select>

     然后页面就呈现了如上的html展示页现在有问题了 如果是编辑页面我们要对这个select进行赋值选中 方法有很多 可以用js去赋值 或者在 @foreach去做个判断 如

      <select id="ddlEnterpriseType" name="ddlEnterpriseType">
                               @foreach (ESunny.InfoPub.Service.Model.DictionaryModel item in dicEnterpriseType)
                               {
                                   if (@Model.EnterpriseType == @item.Dickey)
                                   {
                                        <option value="@item.Dickey" selected="selected">@item.DicName</option>
                                   }
                                   else
                                   {
                                       <option value="@item.Dickey">@item.DicName</option>
                                   }
    
                               }
                            </select>
    

     现在我们使用一个新的方法 在绑定的时候就赋值  @Html.DropDownList

    Controllers

     IList<DictionaryModel> ImportAmountModel = IDict.GetByDicType("ImportAmountType");
                //ViewData["ImportAmountModel "] = new SelectList(ImportAmountModel , "绑定的key", "绑定的name", "这个填写要选中的值比如 model来自数据库 ");
    ViewData["ImportAmountModel "] = new SelectList(ImportAmountModel , "Dickey", "DicName", model.ImportAmountType);

     view

    //控制样式 或者id name等 参考重载方法 我们这里给这个select定义了样式class = "inputstyle1" 应为class是关键字 所以加上@符号转义下
    @Html.DropDownList("actualCapitalUnit", ViewData["actualCapitalUnitModel"] as SelectList, new { @class = "inputstyle1" })
    //简单点的
    @Html.DropDownList("actualCapitalUnit")

    最终展现的html也很干净 目的也达到了

  • 相关阅读:
    ASP.NET MVC 入门9、Action Filter 与 内置的Filter实现(介绍) 【转】
    一个建议,看看大家的意见。
    发现不错的文章,推!
    有个小问题,大家一起研究。
    逼不得已,这个我确实不会,昨办?
    MSN Message6.2 的小BUG
    在IE7浏览器中切换成以资源管理器方式
    手机罗盘(指南针)校准方法
    G13/ Wildfire S/A510e link2SD教程,干净清洁的安装程序到内存卡
    HTC G13电池怎么鉴别真伪
  • 原文地址:https://www.cnblogs.com/jcgh/p/2434281.html
Copyright © 2020-2023  润新知