2010-05-13 37 views
2

我将如何填充ASP.NET MVC列表框? 使它不可选? 我将如何从列表框中删除所选项目asp.net html.listboxfor

+2

可能重复http://stackoverflow.com/questions/382747/mvc- modelbind-listbox-with-multple-selections) – 2010-05-13 12:16:55

+1

你的第二个问题是在这里回答的:http://stackoverflow.com/questions/1379125/make-drop-down-list-item-unselectable – 2010-05-13 12:17:33

+0

如果你的列表是不可选择的你选择要删除的项目? – azamsharp 2010-05-13 15:00:27

回答

11

你想要一个不可选的选择?

<%= Html.ListBoxFor(m => m.Choices, 
         Model.ChoicesMenu, 
         new { disabled = "disabled" }) %> 

的想法是,你的模型需要有一个IEnumerable<SelectListItem>,将持有的可能的键/值对您的选择,这里的ChoicesMenu。所选的实际值(如果可以选择)将被张贴在Choices属性中。使用允许您指定html属性的签名,并将其禁用,以防止选择它。当然,你可以用javascript来做到这一点(或撤消它)。

型号:

public class ViewModel 
{ 
    public int[] Choices { get; set; } 
    public IEnumerable<SelectListItem> ChoicesMenu { get; set; } 
} 

行动(相关位)

var model = new ViewModel 
{ 
    ChoicesMenu = db.Items 
        .Select(i => new SelectListItem 
         { 
          Text = i.Name, 
          Value = i.ID.ToString() 
         }); 
} 
[MVC ModelBind列表框随着Multple选择(的
1

MVC ModelBind ListBox With Multple Selections可能会给你第一个答案。

您可以禁用列表框中的项目,但不能禁用列表框本身。如果将Visible设置为false,则不会显示整个列表框。

做这样的事情:

ListBox.Items[X].Selected = false 

将使项目不可选。

相关问题