【问题标题】:How to add an empty option to a dropdown list如何将空选项添加到下拉列表
【发布时间】:2012-04-20 05:14:03
【问题描述】:

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

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

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

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

【问题讨论】:

  • 请同时包含您的VisitType 代码。
  • @SteveDanner 添加了 VisitType 代码。谢谢

标签: c# asp.net-mvc


【解决方案1】:

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

Adding a default SelectListItem

return new[] { new SelectListItem { Text = "", Value = "" } }.Concat(
       visitTypes
.Where(a=>a.IsActive ?? false)
.ToSelectList("VisitTypeId", "Description", viewModel.VisitTypeId.ToString()));

【讨论】:

  • 感谢您的信息和链接。我确信这非常有用,但是由于我在视图模型中显示项目的方式,此代码将需要我做更多的工作来与我的其余代码集成。我希望可以对我已有的代码进行简单的修改。
  • 尝试我所做的编辑,我只是​​复制了他们的答案,我已经对其进行了修改,因此它应该适用于您上面的代码
  • 感谢您再次帮助我 :) 我得到了它的工作,但我没有返回,而是将其更改为 viewModel.VisitTypes = new[].....
  • 是的,这是有道理的,对此感到抱歉,当我改变它时错过了。很高兴我能帮上忙!
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-29
    • 1970-01-01
    • 2022-12-19
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    相关资源
    最近更新 更多