In der Ansicht, ichPreselection für ListBox in ASP.Net MVC4 festlegen?
<div class="form-group">
<div>
@Html.LabelFor(m => m.DoctorList, new { @class = "control-label" })
</div>
<div>
@Html.ListBoxFor(m => m.DoctorList, new MultiSelectList((List<SelectListItem>)ViewBag.DoctorList, "Value", "Text", ((List<string>)(ViewBag.DoctorsSelected)).ToArray()), new {style="display:block;height:20.0em;", @class = "form-control", Multiple = "multiple"})
</div>
</div>
DoctorList eine Liste in Modell ist, ist ViewBag.DoctorList die gesamte Liste der Ärzte, sie sind so etwas wie:
public static List<SelectListItem> GetDoctorList()
{
List<SelectListItem> ret = new List<SelectListItem>();
// load doctors from database
// for now, fake data
for (int k = 1; k <= 30; k++)
{
string n = "Doctor" + k.ToString();
ret.Add(new SelectListItem() { Value = n, Text = n });
}
return ret;
}
ViewBag.DoctorsSelected ist ein Liste, die eine Liste der Arzt Namen ist, etwas ähnliches wie:
List<string> doctorsSelected = new List<string>();
doctorsSelected.Add("Doctor1");
doctorsSelected.Add("Doctor5");
Was möchte ich tun, ist, dass die Ärzte in der Listbox vorzuwählen. Es zeigt jedoch immer die Listbox, aber keine Neuauswahl.
Ich habe auch versucht unten in GetDoctorList()
ret.Add(new SelectListItem() { Value = n, Text = n, Select = true });
Immer noch keine Vorwahl zu verwenden.
Wer weiß, wie es geht? Ich benutze MVC4.
Dank
Nun, Sie haben Recht, "Sie können nicht den gleichen Namen für die Eigenschaft verwenden, die Sie binden und die SelectList". Aber warum? – urlreader
Das dauert etwa eine Seite oder 2, um im Detail zu erklären :) - aber ich sehe, ob ich später eine vereinfachte Erklärung hinzufügen kann (brauchen eine Pause für eine Stunde oder 2) –
Siehe Update für eine Erklärung, warum die gleichen Namen haben arbeite nicht. –