2016-03-04 2 views
0

Как говорится в вопросе, я хочу, чтобы значение по умолчанию в моем Html.DropdownList было фактической датой в формате yyyy-mm-dd, но я не знаю, как его установить:Установить текущую дату как значение по умолчанию DRopdownListFor

Это мой контроллер ViewBag:

foreach (var item in db.Pos.Select(l => l.Fecha).Distinct()) 
     { 
      dateday = item.ToString("yyyy-MM-dd"); 
      lines = dateday.Split(' ')[0]; 
      listItem2.Add(lines); 
     } 
     var fechas = new SelectList(listItem2.ToList()); 
     ViewBag.Fechas = fechas; 

И это мой взгляд HtmlDRopdown:

 @Html.DropDownList("Fechas", "Todas") 

Как я могу установить значение УСПЕШНОГО на основе фактической даты?

+0

Вы хотите установить текущую дату в качестве выбранной опции в раскрывающемся меню? Текущая дата в вашей коллекции (результат вашего выражения 'db.Pos.Select (l => l.Fecha) .Distinct()'?) – Shyju

+0

это в моей коллекции @Shyju –

+0

Итак, вы хотите установить текущую дату как выбранный вариант, и вы уверены, что он существует в вашей коллекции? – Shyju

ответ

2

Предполагая, что выражение LINQ b.Pos.Select(l => l.Fecha).Distinct() возвращает коллекцию DateTime.

var list = new List<SelectListItem>(); 
var today = DateTime.Now; 
foreach (var item in db.Pos.Select(l => l.Fecha).Distinct()) 
{ 
    var dateday = item.ToString("yyyy-MM-dd"); 
    var listItem = new SelectListItem { Value = dateday, Text = dateday }; 
    listItem.Selected = today.Day == item.Day; 
    list.Add(listItem); 
} 
ViewBag.Fechas = list; 

А на ваш взгляд,

@Html.DropDownList("Fechas") 

Это создаст элемент SELECT, с именем «Fechas» с дней (в формате мы указали) и дату сегодняшнего будет выбран.

Если вы хотите, чтобы ваш выбор элемента иметь другое имя, вы можете рассмотреть возможность использования другой перегрузки, такие как

@Html.DropDownList("MyCustomElementName",ViewBag.Fechas as List<SelectListItem>) 

Я лично предпочитаю не использовать ViewBag! Мне нравится use a view model and the DropDownListFor helper method.

+0

будет ли он иметь полную дату или только день? –

+0

любой формат, который вы указали. Почему бы вам не попробовать и не увидеть его сами? – Shyju

+0

Он отлично поработал вам большое спасибо !!! @Shyju –

Смежные вопросы