zoukankan      html  css  js  c++  java
  • 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也很干净 目的也达到了

  • 相关阅读:
    POJ 1426 Find The Multiple(数论——中国同余定理)
    POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
    POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)
    POJ 3278 Catch That Cow(模板——BFS)
    HDU 1071 The area
    HDU 1213 How Many Tables(模板——并查集)
    POJ 1611 The Suspects
    light oj 1214 Large Division
    POJ 1258 Agri-Net(Prim算法求解MST)
    POJ 2387 Til the Cows Come Home(模板——Dijkstra算法)
  • 原文地址:https://www.cnblogs.com/jcgh/p/2434281.html
Copyright © 2011-2022 走看看