2016-03-04 97 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") 

如何設置根據實際日期defaut價值?

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

相關問題