在编辑页面的表格中的每一行中设置下拉列表的选定值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在编辑页面的表格中的每一行中设置下拉列表的选定值相关的知识,希望对你有一定的参考价值。
我有一个可编辑的表,其中每行都有下拉列表来更新行值。如何在页面加载时为编辑页面上的行设置下拉列表选定值。
我的html代码:
foreach (var item in Model)
{
<tr>
<td>
@Html.DropDownList("TeamA", null, "--Select--", htmlAttributes: new { @id = "teamA_" + item.ScheduleID, @class="form-control" })
</td>
<td>
@Html.DropDownList("TeamB", null, "--Select--", htmlAttributes: new { @id = "teamB_" + item.ScheduleID, @class = "form-control"})
</td>
</tr>
}
分别通过ViewBag.TeamA和ViewBag.TeamB填充表格选项,如下所示
ViewBag.TeamA = new SelectList(db.Teams.Where(s => s.RoleID == Id).ToList(), "TeamID", "Name");
ViewBag.TeamB = new SelectList(db.Teams.Where(s => s.RoleID == Id).ToList(), "TeamID", "Name");
答案
在你不确定剃须刀怎么做的情况下使用Html,比如在这种情况下使用带循环的Html下拉列表。例如
<select>
@foreach (var v in ViewBag.DropdownData)
{
<option value="@v.ID" @(v.ID == item.DDLID ? "selected" : "")>@v.Name</option>
}
</select>
另一答案
您必须定义DorpDownList
的列表,并且您需要定义所选项目,如下所示。
@Html.DropDownList("TeamA", new List<SelectListItem> { new SelectListItem { Text = "P1", Value = "1"}, new SelectListItem { Text = "P2", Value = "2", Selected = true} }, "--Select--", new { value = "2"})
请注意,我已经生成了列表(新列表)。
另一答案
将string.optionLabel
中的@Html.DropDownList
设置为item.Name
可能会有效,假设您在视图中使用您的团队作为模型。
@Html.DropDownList("TeamA", null, item.Name, new {@id = "teamA_" + item.ScheduleID, @class="form-control"})
如果它们有任何值,它应显示正确的值,否则它将为空。
另一答案
谢谢大家的宝贵时间,我通过以下方式解决了这个问题。
<td>
<select name="TeamA" >
<option value="0">--select--</option>
@foreach (Team t in ViewBag.TeamA)
{
<option value="@t.TeamID" @(t.TeamID == item.Team1 ? "selected" : "")>@t.Name</option>
}
</select>
</td>
在服务器端
ViewBag.TeamA = db.Teams.Where(s => s.SeriesID == Id).ToList();
以上是关于在编辑页面的表格中的每一行中设置下拉列表的选定值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Kendo UI MVC 的网格中设置和获取下拉列表的值?