Выпадающий в Asp.Net - PullRequest
       10

Выпадающий в Asp.Net

1 голос
/ 22 апреля 2020
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 года. Но мне нужно сначала пустое значение, так как это необязательный выпадающий список. Как этого добиться, будет признательна любая помощь

Редактировать: Renderer на странице cs html

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

1 Ответ

1 голос
/ 22 апреля 2020

Создайте список и вставьте в позицию 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;

Обратите внимание на специальное значение, назначенное элементу подсказки, чтобы позволить вам понять, был ли выбран какой-либо действительный год

...