我有一个html.dropdownlist,它有4个选项。我希望它显示一个占位符文本defaut,它不包含在选项中。我通过在列表中添加默认选项实现了类似的功能,但是选择的默认选项会导致div展开并且它会破坏页面布局。
<div style="float:left; padding-left:13.4%;">
@Html.DropDownList("Adults", ViewData["Adults"] as List<SelectListItem>, new { @class = "dropdown2"})
</div>
这就是控制器代码;
List<SelectListItem> adt = new List<SelectListItem>();
//adt.Add(new SelectListItem
//{
// Text = "1",
// Value = "1"
//});
adt.Add(new SelectListItem
{
Text = "1",
Value = "1"
});
adt.Add(new SelectListItem
{
Text = "2",
Value = "2"
});
adt.Add(new SelectListItem
{
Text = "3",
Value = "3"
});
adt.Add(new SelectListItem
{
Text = "4",
Value = "4"
});
ViewData["Adults"] = adt;
return View();
我是mvc的新人,任何贡献将不胜感激。谢谢。
答案 0 :(得分:0)
如果不直接实现,添加占位符文本即使不是不可能也很棘手。我推荐使用Chosen(JQuery Plugin)。它非常易于使用,并使下拉菜单美观。
https://harvesthq.github.io/chosen/
选择下拉列表的示例:
@Html.DropDownListFor(model => model.Example, Model.Example, new { @class = "chosen", data_placeholder="Choose items"})
答案 1 :(得分:0)
您可以添加jquery代码以使用select属性向下拉列表添加选项,以便将该选项设置为占位符:
$('#selectid').append($('<option/>', {
value: value,
text : value
}));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<select id='selectid'>
<option value="" disabled selected>Select your option</option>
<option value="hurr">Durr</option>
</select>
&#13;
答案 2 :(得分:0)
如果您使用的是ASP.NET MVC 5,则可以使用@Html.DropDownList
的重载方法
的光阑类型为string optionLabel
。
这将在第一个索引的选择列表中添加一个新选项。将默认选择。并且如果始终选择默认选项,则不需要占位符。
@Html.DropDownList("Adults", ViewData["Adults"] as List<SelectListItem>, "Select Adult",new { @class = "dropdown2"})