2015-10-05 68 views
0

所以我希望標題能說明一切。MVC3中「全選」選項的下拉列表

我想創建一個下拉列表,並在最上方有一個「全選」選項。 問題是,我不知道如何開始這個,並希望有人能夠幫助我在這個追求。經過一番瀏覽,我找不到任何好的例子,並決定在這裏發佈這個問題。

我對MVC瞭解不多,但我還在學習。無法顯示任何代碼,因爲正如我之前所說,我不知道從哪裏開始。

我不是要求整個代碼示例,而是一個如何做到這一點以及如何開始的例子。這樣我可以從中學習,也可以在你們的幫助下自己做。

你們可以幫助新手程序員出來幫助我嗎?

+0

搜索Dropdownlist或DropDownListFor幫手 –

回答

0

那麼,對於一個,DropDownListFor呈現單一選擇,所以你不能使用和「全選「,因爲無法通過單選將所有項目傳回。

可能使用ListBoxFor,這將產生一個多選。這至少可以讓你實際選擇全部,首先。但是,在選擇列表中沒有選擇所有項目的HTML方法,因此MVC無法爲您提供這樣的控件,因爲它是HTML的限制。您可以實現一些自定義JavaScript,這些JavaScript會在點擊按鈕或其他東西時激活,然後以編程方式選擇選擇列表中的所有項目。見:Select all or Unselect all in listbox using jquery?

+0

我試過這個,到目前爲止,我設法得到一個DropDownList(通過使用ListBoxFor)。但唯一的問題是,當我用jQuery選擇多個項目時,它不會將值傳遞給我的服務器端代碼?我收到一個空的值列表,即使它們都在列表中被選中。 – Jorrex

+0

'SelectedId'需要像'List '這樣的東西。確保該屬性的類型是正確的。這個名字似乎暗示它只是一個'int'。 –

+0

這個技巧。我的問題是,我最初做了一個新的名單,忘記帶走那部分。所以我總是一遍又一遍地初始化一個新的列表。 – Jorrex

0

最好的辦法是在MVC中使用Html幫手DropDownListDropDownListFor。你可以提供一個IEnumerable`。

所以基本上建立起自己的選擇列表加入其中的key您最初的元素之後,「全選」

@Html.DropDownListFor(m => m.SelectedId, m.SelectList) 

凡SelectedId是在模型中的特性將包含在回發所選擇的選項, SelectList是SelectListItems的列表。

var model = new TestViewModel(); 
model.SelectList = new List<SelectListItem>(); 
model.SelectList.Add(new SelectListItem(){ Value = "0", Key = "Select All" }); 

資源

ASP.NET Using the DropDownList helper

MSDN