1

我正在尝试过滤掉我的一些下拉列表以仅显示活动的项目。但同时我想添加一个空列表项作为第一个默认选项,因为并非所有下拉列表都需要选择。

这是我确保显示活动项目但不确定如何将空列表项功能添加到默认情况下的代码。

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; }
    }
}

任何帮助或想法都会很棒。谢谢!

4

2 回答 2

2

检查这个问题的答案,它几乎是重复的,并且准确地回答了您在此处寻找的内容

添加默认的 SelectListItem

return new[] { new SelectListItem { Text = "", Value = "" } }.Concat(
       visitTypes
.Where(a=>a.IsActive ?? false)
.ToSelectList("VisitTypeId", "Description", viewModel.VisitTypeId.ToString()));
于 2012-04-19T20:25:01.453 回答
0

我使用 SelectedIndex = -1; 过去取得了不错的成绩。

于 2012-04-19T20:28:21.127 回答