Mehrfachauswahl-Liste zeigt, die nicht ausgewählte Elemente in c # mvc linq2sql mit
-
21-09-2019 - |
Frage
Ich habe viele verschiedene Arten versucht, die ausgewählten Elemente in die Liste Mehrfachauswahl ohne Glück zu übergeben. Schließlich habe ich versucht, das, was ich denke, sollten alle die Elemente anzuzeigen, wie ausgewählt und noch nichts in der Liste ausgewählt ist.
public MultiSelectList Companies { get; private set; }
Companies = MulitSelectList(subcontractRepository.SubcontractCompanies(Subcontract.subcontract_id), "Value", "Text");
in SubcontractRepository.cs:
public IEnumerable<SelectListItem> SubcontractCompanies(Guid id)
{
return c in db.companies
select new SelectListItem
{
Text = c.company_name,
Value = c.company_id.ToString(),
Selected = true
}
}
in Aussicht:
<p>
<label for="Companies">Company:</label>
<%= Html.ListBox("Companies", Model.Companies) %>
<%= Html.ValidationMessage("Companies", "*") %>
</p>
Lösung
Entdeckt hier das Problem. Der MultiSelectList muss einen anderen Namen aus der List-Box hat. Gemacht, dass Veränderungen und nun beiden Versionen des Codes arbeiten.
Andere Tipps
MultiSelectList Konstruktor vierte Parameter - ausgewählte Elemente. Verwenden Sie es:
http://msdn.microsoft .com / en-us / library / system.web.mvc.multiselectlist.multiselectlist.aspx
Mit diesem Code:
public class SelectCompanyItem
{
public string Name { get; set; }
public Guid Id { get; set; }
}
public IEnumerable<SelectCompanyItem> SubcontractCompanies(Guid id)
{
return c in db.companies
select new SelectCompanyItem
{
Name = c.company_name,
Id = c.company_id
}
}
var companiesList = subcontractRepository.SubcontractCompanies(Subcontract.subcontract_id);
Companies = new MultiSelectList(companiesList , "Id", "Name", companiesList.Select(a => a.Id));
funktioniert es?