我正在尝试过滤掉一些下拉列表,仅显示有效的项目。但同时我想添加一个空列表项作为第一个和默认选项,因为并非所有下拉列表都需要选择。
这是我用来确保显示活动项但不确定如何添加空列表项功能的代码。
IOrderedQueryable<VisitType> visitTypes =
_visitTypeRepository.FindAll().OrderBy(a => a.Description);
viewModel.VisitTypes = visitTypes
.Where(a=>a.IsActive ?? false)
.ToSelectList("VisitTypeId", "Description", viewModel.VisitTypeId.ToString());
这是我的VisitType代码:
[MetadataType(typeof(VisitTypeMetadata))]
[ScaffoldTable(true)]
[LocalizedDisplayName("EntityNamePlural", NameResourceType = typeof(Resources.Entities.VisitType))]
[DisplayColumn("Description", "Description", false)]
public partial class VisitType
{
public static VisitType All = new VisitType() { Description = "All", VisitTypeId = 0 };
public string ValueDescription
{
get { return this.VisitTypeId.ToString() + "|" + Description; }
}
public class VisitTypeMetadata
{
[ColumnOrder(0)]
[ScaffoldColumn(false)]
[Filter(Enabled = false)]
[DefaultBoolean(Checked = true)]
[DisplayName("Active")]
public object IsActive { get; set; }
[ColumnOrder((1))]
public object Description { get; set; }
[ScaffoldColumn(false)]
public object VisitActivityEntries { get; set; }
}
}
任何帮助或想法都会很棒。谢谢!
答案 0 :(得分:2)
检查这个问题的答案,它几乎是重复的,并准确回答你在这里寻找什么
Adding a default SelectListItem
return new[] { new SelectListItem { Text = "", Value = "" } }.Concat(
visitTypes
.Where(a=>a.IsActive ?? false)
.ToSelectList("VisitTypeId", "Description", viewModel.VisitTypeId.ToString()));
答案 1 :(得分:0)
我使用了SelectedIndex = -1;过去效果很好。