標籤:des style blog io ar color os sp java
AceAdmin有很多Html控制項,而下載下來之後全部混雜在一起,想用一個控制項有時得調整半天,乾脆整理出一個版本,而且結合起來MVC的封裝。以後就不用一個js css的調了。
1、下拉框
視圖:
@{ Layout = null;}<!DOCTYPE html><html lang="en"><head> <title>下拉框 - Ace Admin</title> @* 這個控制寬度(只是控制div的) *@ <link rel="stylesheet" href="/assets/css/bootstrap.min.css" /> @* 以下兩個對下拉框的樣式有影響 *@ <link rel="stylesheet" href="/assets/css/chosen.css" /> <link rel="stylesheet" href="/assets/css/ace.min.css" /> <link rel="stylesheet" href="/assets/css/font-awesome.min.css" /> <script src="/Scripts/jquery_2_1_0_min.js"></script> <!--[if IE]> <script src="/Scripts/jquery_1_11_0_min.js"></script> <![endif]--> <script src="/assets/js/chosen.jquery.min.js"></script> <script type="text/javascript"> $(function ($) { $(‘.chosen-select‘).chosen({ allow_single_deselect: true }); //視窗大小改變時,下拉框跟著縮放 $(window).on(‘resize.chosen‘, function () { var w = $(‘.chosen-select‘).parent().width(); $(‘.chosen-select‘).next().css({ ‘width‘: w }); }).trigger(‘resize.chosen‘); }); </script></head><body> <div class="modal-body"> <div class="row"> <div class="col-xs-12 col-sm-4"> <!-- Html樣本 --> <select class="chosen-select" name="Hero" data-placeholder="請選擇英雄..."> <option value=""></option> <!-- 預設的Text裡不要放東西,否則不會選擇(請選擇) --> <option value="1">劉備</option> <option value="2">關羽</option> <option value="3">張飛</option> </select> <div class="space-4"></div> <!-- MVC版樣本 --> @*對於AceAdmin很多-,在MVC中要用_代替*@ @Html.DropDownList("SelectListItem", null, null, new { @class = "chosen-select", data_placeholder="請選擇英雄...", name = "Hero" }) </div> </div> </div></body></html>
後台:
public ActionResult HtmlControl() { List<SelectListItem> SelectListItem = new List<SelectListItem>(); SelectListItem.Add(new SelectListItem { Text = " ", Value = "" }); SelectListItem.Add(new SelectListItem { Text = "劉備", Value = "1" }); SelectListItem.Add(new SelectListItem { Text = "關羽", Value = "2" }); SelectListItem.Add(new SelectListItem { Text = "張飛", Value = "3" }); ViewBag.SelectListItem = SelectListItem; return View(); }
另外推薦1種建立SelectList的方法,能與ORM工具比較好地結合。
//類比資料庫查出來的資料 List<Person> ListPerson = new List<Person>() { new Person(){ Id = 0, Name=" " }, new Person(){ Id = 1, Name="劉備" }, new Person(){ Id = 2, Name="關羽" }, new Person(){ Id = 3, Name="張飛" } }; SelectList ListItem = new SelectList(ListPerson, "Id", "Name"); //還有第四個參數是預設選定的值 ViewBag.SelectListItem = ListItem;
如果是用SelectListItem,那麼要配合Linq的Select()方法查出Text與Value
IEnumerable<SelectListItem> items = ListPerson.Select(item => new SelectListItem { Value = item.Id.ToString(), Text = item.Name });
多選,如果是多選,只需要添加一個屬性就OK了,其他完全一樣:multiple="multiple"
AceAdmin In MVC之控制項