【发布时间】:2010-05-13 20:37:39
【问题描述】:
如何填充 ASP.NET MVC 列表框? 使其不可选择? 我将如何从列表框中删除选定的项目
【问题讨论】:
-
您的第二个问题在这里得到解答:stackoverflow.com/questions/1379125/…
-
如果您的列表不可选择,您将如何选择要删除的项目?
标签: asp.net asp.net-mvc
如何填充 ASP.NET MVC 列表框? 使其不可选择? 我将如何从列表框中删除选定的项目
【问题讨论】:
标签: asp.net asp.net-mvc
你想要一个不可选择的选择吗?
<%= 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 ListBox With Multple Selections可能会给你第一个答案。
您可以禁用列表框中的项目,但不能禁用列表框本身。如果将 Visible 设置为 false,则不会显示整个列表框。
做类似的事情:
ListBox.Items[X].Selected = false
将使项目不可选择。
【讨论】: