Ok, ich bin ziemlich neu in MVC/C#. Ich habe wirklich online gesucht, um eine Antwort zu bekommen, und ich habe schon lange gekämpft.Wie man eine boolsche Eigenschaft dynamisch in eine DropDownList in C#/mvc konvertiert 5
In meinem Projekt habe ich ein Mitarbeitermodell:
- Name VZ NVARCHAR (50) NOT NULL,
- Vorname NVARCHAR (50) NOT NULL,
- ...
- IdSupervisor INTEGER NULL, NULL,
- IsSupervisor BIT,
Wenn ich eine ne erstellen w Mitarbeiter, ich überprüfe ein Optionsfeld, wenn dieser Mitarbeiter ein Vorgesetzter ist. Es geht gut in meine Datenbank als True/False.
Ich möchte dynamisch eine DropDownList aus dieser True/False-Eigenschaft erstellen, die den Vor- und Nachnamen anzeigt, aber den IDSupervisor (der zuerst als ein Mitarbeiter erstellt wurde) eingeben.
Beispiel von Tabellendaten Mitarbeiter:
- Chaplin, Charlie, 1, Ja
- Keaton, Buster, 2, Ja
- Pickford, Mary, 1, Ja
- Fairbanks, Douglas, 2, No
- Laurel, Stan, 1, No
- Hardy, Oliver, 2, NO
Beispiel für Supervisor-Dropdownlist:
- Charlie Chaplin
- Buster Keaton
- Mary Pickford
Ich weiß, wie eine statische Dropdownlist erstellen, aber es wird für dieses Problem nutzlos.
Mein Code:
Mitarbeiter Modell:
public Employe()
{
this.AccesApplicatif1 = new HashSet<AccesApplicatif>();
this.TelephoneCellulaire1 = new HashSet<TelephoneCellulaire>();
this.CleBatiment1 = new HashSet<CleBatiment>();
this.EquipementInfo = new HashSet<EquipementInfo>();
this.GroupeSecurite1 = new HashSet<GroupeSecurite>();
this.VehiculeCompagnie1 = new HashSet<VehiculeCompagnie>();
}
public int IdEmploye { get; set; }
public string NomEmploye { get; set; }
public string PrenomEmploye { get; set; }
public int IdSuperviseur { get; set; }
public Nullable<bool> IsSuperviseur { get; set; }
Mitarbeiter Controller:
// GET: Employes/Create
public ActionResult Create()
{
ViewBag.IdDepartement = new SelectList(db.Departement, "IdDepartement", "Description");
ViewBag.IdEmployeur = new SelectList(db.Employeur, "IdEmployeur", "NomEmployeur");
ViewBag.IdLocalisation = new SelectList(db.Localisation, "IdLocalisation", "Description");
ViewBag.IdTelephoneBureau = new SelectList(db.TelephoneBureau, "IdTelephoneBureau", "NumeroInventaire");
ViewBag.IdTitre = new SelectList(db.TitreEmploye, "IdTitre", "Description");
return View();
}
Ansicht erstellen:
<div class="form-group">
@Html.LabelFor(model => model.IdSuperviseur, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.IdSuperviseur, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.IdSuperviseur, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.IsSuperviseur, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<div class="checkbox">
@Html.RadioButtonFor(model => model.IsSuperviseur, false, new { id = "rbtNonSuperviseur" })
@Html.Label("rbtNonSuperviseur", "Non")
@Html.RadioButtonFor(model => model.IsSuperviseur, true, new { id = "rbtOuiSuperviseur" })
@Html.Label("rbtOuiSuperviseur", "Oui")
@Html.ValidationMessageFor(model => model.IsSuperviseur, "", new { @class = "text-danger" })
</div>
</div>
</div>
JEDE Hilfe wird sehr geschätzt. Haftungsausschluss: Keine Berühmtheiten wurden während dieser Post geschädigt.
'Mitarbeiter.Wo (Mitarbeiter => employee.IsSuperviseur)' würde die gewünschten Daten zurückgeben. – Kilazur
AJAX ist völlig unnötig. Befolgen Sie den Rat von @ Kilazur. Erstellen Sie aus diesen gefilterten Mitarbeiterdaten eine Auswahlliste, und Sie sind fertig. –
Warum verwenden Sie einen ViewBag in Ihrem Employee Controller? –