Asp.Net 中的下拉菜单
Dropdown in Asp.Net
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>
创建列表,然后在位置 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;
注意分配给提示项的特殊值,让您了解是否选择了某个有效年份
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>
创建列表,然后在位置 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;
注意分配给提示项的特殊值,让您了解是否选择了某个有效年份