Asp.Net中的下拉菜单

问题描述 投票:0回答:1
ViewBag.Years = new SelectList(Enumerable.Range(1910, DateTime.Today.Year - 1910 + 1).Select(x =>
    new SelectListItem()
    {
         Text = x.ToString(),
         Value = x.ToString()
    }), "Value", "Text");

我使用这个语法来显示1910年的下拉菜单。但我需要第一个值为空白,因为它是可选的下拉菜单。如何实现,任何帮助将是感激的

编辑:cshtml页面上的渲染器

  <div class="col-@screenSize-4">
                        @Html.Label("Select Year")
                        @Html.DropDownListFor(model => model.EventYear, (IEnumerable<SelectListItem>)ViewBag.Years, new { @class = "form-control select-control", @data_placeholder = "Select one" })
 </div>
c# drop-down-menu html-select
1个回答
1
投票

创建列表,然后在0位置插入你需要的项目。这样一来,它就是页面加载时显示的第一个项目。

List<SelectListItem> list = Enumerable.Range(1910, DateTime.Today.Year - 1910 + 1)
                            .Select(x => new SelectListItem()
                            {
                               Text = x.ToString(),
                               Value = x.ToString()
                             }).ToList();
list.Insert(0, new SelectListItem{ Text = "(Select a year)", Value = "-1" });
ViewBag.Years = list;

请注意分配给提示项的特殊值,让你了解是否选择了一些有效的年份。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.