在编辑页面的表格中的每一行中设置下拉列表中的选定值

时间:2017-12-28 10:31:44

标签: c# asp.net-mvc razor asp.net-mvc-5

我有一个可编辑的表,其中每行都有下拉列表来更新行值。如何在页面加载时为编辑页面上的行设置下拉列表选定值。

我的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");

4 个答案:

答案 0 :(得分:1)

在你不确定如何使用剃须刀的情况下使用Html,比如在这种情况下使用带循环的Html下拉列表。 e.g。

<select>        
        @foreach (var v in ViewBag.DropdownData)
        {
            <option value="@v.ID" @(v.ID == item.DDLID ? "selected" : "")>@v.Name</option>
        }
    </select>  

答案 1 :(得分:0)

您必须定义import maya.cmds as cmds window = cmds.window( title="Render",widthHeight=(300,200),minimizeButton=True,maximizeButton=True ) inner_child_5 = cmds.rowColumnLayout(numberOfColumns=2) for val in range(0,2): cmds.checkBox(label="layer") cmds.text("Done",width=150, height=10,align='left') cmds.showWindow( window ) 的列表,并且您需要定义所选项目,如下所示。

DorpDownList

请注意,我已经生成了列表(新列表),例如。

答案 2 :(得分:0)

string.optionLabel中的@Html.DropDownList设置为item.Name可能会有效,假设您在视图中使用您的团队作为模型。

@Html.DropDownList("TeamA", null, item.Name, new {@id = "teamA_" + item.ScheduleID, @class="form-control"})

如果它们有任何值,则应显示正确的值,否则它将为空。

答案 3 :(得分:0)

谢谢大家的宝贵时间,我按照以下方式解决了这个问题。

 <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();