@Html.TextBox("PersonId")
@Html.TextBox("PersonIsWorking")
@Html.AutoCompleteFor(model => model.Id, new PeopleDatalist())
@Html.TextBox("PersonId")
@Html.TextBox("PersonIsWorking")
@Html.DatalistFor(model => model.Id, new PeopleDatalist())
document.querySelector('.datalist').addEventListener('datalistselect', function (e) {
document.getElementById('PersonIsWorking').value = e.detail.data[0] && e.detail.data[0].IsWorking;
document.getElementById('PersonId').value = e.detail.data[0] && e.detail.data[0].Id;
});
public class PeopleDatalist : MvcDatalist<Person>
{
private DbContext Context { get; }
public PeopleDatalist(DbContext context)
{
Context = context;
}
public PeopleDatalist()
{
Url = "AllPeople";
}
public override IQueryable<Person> GetModels()
{
return Context.Set<Person>();
}
public override void FormData(Person model)
{
Dictionary<String, String> data = base.FormData(model);
data["IsWorking"] = GetIsWorkingStringFromBoolean(model.IsWorking);
return data;
}
}
public class Person
{
[DatalistColumn(Hidden = true)]
public Int32 Id { get; set; }
[DatalistColumn]
[Display(Name = "Name")]
public String Name { get; set; }
[DatalistColumn]
[Display(Name = "Surname")]
public String Surname { get; set; }
[DatalistColumn]
[Display(Name = "Income")]
public Int32 Income { get; set; }
[Display(Name = "Birthday")]
[DatalistColumn(Format = "{0:d}")]
public DateTime Birthday { get; set; }
public Boolean? IsWorking { get; set; }
}