2017-12-28 16 views
-1

Ich habe eine bearbeitbare Tabelle, wo jede Zeile Drop-Down-Liste, um den Zeilenwert zu aktualisieren. Wie setze ich den ausgewählten Wert der Dropdown-Liste beim Laden der Seite für Zeilen, die bereits zuvor aktualisiert wurden.Set Dropdown-Liste ausgewählten Wert in einer Tabelle auf Bearbeitungsformular (MVC 5)

Meine aktuelle Tabelle:

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> 
} 

passierte ich die Daten durch ViewBag.TeamA und ViewBag.TeamB jeweils wie unten

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"); 
+1

Können Sie den serverseitigen Code teilen, damit wir wissen, wie Sie die Daten für die Dropdown-Liste erhalten. –

Antwort

0

Sie die Liste definieren für die DorpDownList und dass müssen Sie müssen das ausgewählte Element wie folgt definieren.

@Html.DropDownList("TeamA", new List<SelectListItem> { new SelectListItem { Text = "P1", Value = "1"}, new SelectListItem { Text = "P2", Value = "2", Selected = true} }, "--Select--", new { value = "2"}) 

Bitte beachten Sie, dass ich die Liste (neue Liste) nur zum Beispiel erstellt habe.

0

Die Einstellung string.optionLabel in @Html.DropDownList bis könnte funktionieren, vorausgesetzt, Sie verwenden Ihre Teams als Modell in der Ansicht.

Dies sollte korrekte Werte anzeigen, wenn sie irgendwelche haben, sonst wird es leer sein.

0

Vielen Dank für Ihre wertvolle Zeit, löste ich es auf folgende Weise.

<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> 

und auf Server-Seite

ViewBag.TeamA = db.Teams.Where(s => s.SeriesID == Id).ToList(); 
1

Verwenden Html in solchen Bedingungen, bei denen Sie nicht sicher, wie gestochen zu tun, wie in diesem Fall der Verwendung Html Dropdown mit Schleife. z.B.

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