我需要在我的选择列表中添加一个选项,例如:
<option value="">Select an Option Below</option>
以下是生成选择列表的方法:
不确定在哪里添加此选项。感谢
public static IEnumerable<SelectListItem> GetBuildingClubs(List<BuildingClub> localClubs, List<BuildingClub> psfyClubs)
{
var buildingClubList = new List<SelectListItem>();
IEnumerable<BuildingClub> allBuildingClubs = localClubs.Union(psfyClubs);
foreach (BuildingClub b in allBuildingClubs)
{
buildingClubList.Add(new SelectListItem
{
Value = b.MasterCustomerId,
Text = b.NewBuildingClubName
});
}
buildingClubList.OrderBy(c => c.Text);
//Prepend the default option here???
return buildingClubList;
}
答案 0 :(得分:6)
您可以直接在视图中执行以下操作,而不是在集合中添加默认值:
@Html.DropDownListFor(model => model.SelectedValue, Model.BuildingClubList, "Select an Option Below")
带有空白值项的"Select an Option Below"
将显示在您的下拉列表中。
假设您的模型包含由BuildingClubList
方法初始化的名为GetBuildingClubs
的属性。
答案 1 :(得分:3)
您可以使用{/ 1}}方法,例如
Insert
或
在循环
之前添加默认 buildingClubList.Insert(0, new SelectListItem
{
Value = "",
Text = "Select an Option Below"
});
答案 2 :(得分:0)
只需添加一个
buildingClubList.Add(new SelectListItem
{
Value = "",
Text = "Select an Option Below"
});
在你的foreach循环之前。
答案 3 :(得分:0)
在进入foreach循环之前,添加:
buildingClubList.Add(new SelectListItem
{
Value = "",
Text = "Select an Option Below"
});
在他们选择了某些内容之后,你会想要确认它当然不是这个选项
答案 4 :(得分:0)
对于未来的用户(我知道这是旧的,但我在寻找解决方案时遇到了它),如果你有一个具有单个选定值的现有SelectList,那么这个帮助器将为你提供Add和Prepend方法: - < / p>
/// <summary>
/// A static helper class providing extension methods to SelectList instances
/// </summary>
public static class SelectListExtensions
{
/// <summary>
/// Adds the specified value to the select list.
/// </summary>
/// <param name="selectList">The select list.</param>
/// <param name="value">The value.</param>
/// <param name="text">The text.</param>
/// <param name="selected">if set to <c>true</c> [selected].</param>
/// <returns>The modified/rebuilt select list</returns>
public static SelectList Add(this SelectList selectList, string value, string text, bool selected = false)
{
var itemList = selectList.ToList().FluentAdd(
new SelectListItem { Value = value, Text = text, Selected = selected }
);
return new SelectList(itemList, "Value", "Text");
}
/// <summary>
/// Prepends the specified value to the select list.
/// </summary>
/// <param name="selectList">The select list.</param>
/// <param name="value">The value.</param>
/// <param name="text">The text.</param>
/// <param name="selected">if set to <c>true</c> [selected].</param>
/// <returns>The modified/rebuilt select list</returns>
public static SelectList Prepend(this SelectList selectList, string value, string text, bool selected = false)
{
var itemList = selectList.ToList();
itemList.Insert(0, new SelectListItem { Value = value, Text = text, Selected = selected });
return new SelectList(itemList, "Value", "Text", selectList.SelectedValue);
}
}
答案 5 :(得分:0)
这很老了,如果您想要“提示”选项,@RédaMattar的答案是最好的/正确的答案,但是我偶然发现了它,希望将一个有价值的选项手动添加到SelectList中(例如,允许客户触发的选项一种“新”操作),这似乎是最干净的方法:
selectList = selectList.Prepend(
new SelectListItem { Value = "New", Text = "New", Selected = false }
);