2011-03-29 59 views
3

嗨複選框,下拉(組合框),在ASP.NET MVC

我建立一個ASP.NET MVC 2應用程序和迄今使用常規的下拉列表:

<%: Html.DropDownListFor(model => model.LS.L1, Model.LS.Location1List, "-- choose place --", new { @class = "dd1" })%> 

現在我需要改爲使用複選框列表將其更改爲下拉列表。這意味着兩件事情:

  1. 該模式最多可以更改,以便L1可以容納多個值(而不僅是INT),莫比也Location1List最從的SelectList改變某種名單?
  2. 的DropDownListFor(組合框)最被改爲「DropDownCheckListFor。

其重要的,這是基本的可能,所以我們可以保持瀏覽器保持兼容(即使在智能手機)。

,你可以看到它也提交重要的是,選擇的值填充到模型對象(由默認粘合劑)

我已經看過這個下拉菜單:http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/

它的外觀但我不知道如何將其轉換爲ASP.NET MVC,以便將所選值填充到提交時的模型對象(如DropDownListFor)。此jQuery解決方案也許是非常複雜的。

普萊斯建議

回答

4

記住MVC傭工只呈現HTML標記。所以要根據您鏈接頁面上的說明,你只需要生成

<select multiple="multiple"> 

爲了做到這一點,你需要使用Html.ListBoxFor而不是Html.DropDownListFor。然後,當您包含所有正確的JavaScript文件時,您可以簡單地添加一個JavaScript塊。這看起來是這樣的:

$(function() { 
    $('.dd1').multiselect(); 
}); 
+0

啊哈,這看起來容易,我會嘗試,並返還給您。 – Banshee 2011-03-30 07:05:12

+0

它的工作原理,謝謝! – Banshee 2011-03-31 11:43:27

0

本教程顯示了MVC與複選框創建多選下拉 Multiselect dropdown with checkboxes in MVC

你需要選擇標記完成一步一步的指導

<select id="CustomerId" name="CopyFromCustomerId"></select> 

,或者您可以使用Html.ListBoxFor

您需要以下腳本

$('#CustomerId').multiselect({ 
      includeSelectAllOption: true 
     }); 

及以下的CSS和腳本文件

<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" type="text/css" /> 
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>  
<script type="text/javascript" src="http://davidstutz.github.io/bootstrap-multiselect/dist/js/bootstrap-multiselect.js"></script> 
<link rel="stylesheet" href="http://davidstutz.github.io/bootstrap-multiselect/dist/css/bootstrap-multiselect.css" type="text/css"/>