Jag behöver göra en kategori Lista som blockets. Jag har 2 tabeller. Categories och Subcategories. Jag utgår ifrån att du har en lista med an class som heter Category, och listan i view-datan heter Categories och fyra properties Value, Id och Special (bool som styr om det är speciell bakgrund) och Description.Detta förutsätter att du bygger ihop båda tabellerna i den. Jag trodde att man var tvungen o skapa någont typ av Helper. Hej!Fylla en dropdownlist ifrån 2 tabeller - MVC
Jag har nyligen börjat använda mig utav MVC, och undrar hur man kan fylla en dropdownlista ifrån dessa 2 tabeller. Jag vill tillägga att några av dessa Items har BGcolor, vilket gör det svårare.
det vore kul om ni kunde hjälpa mig!
Den ska generera något liknande:
<select name="category_group" id="category_group" sel_id="" >
<option value="0" selected>«Välj»</option>
<option value='1000' style='background-color:#dcdcc3;font-weight:bold;' id='cat1000' >
-- FORDON --
</option>
<option value='1020' id='cat1020' >
Bilar
</option>
<option value='1040' id='cat1040' >
Bildelar & Biltillbehör
</option>
<option value='1060' id='cat1060' >
Båtar
</option>
<option value='1080' id='cat1080' >
Båtdelar & tillbehör
</option>
<option value='1100' id='cat1100' >
Husvagnar & Husbilar
</option>
<option value='1120' id='cat1120' >
Mopeder & A-traktor
</option>
<option value='1140' id='cat1140' >
Motorcyklar
</option>
<option value='1160' id='cat1160' >
MC-delar & tillbehör
</option>
<option value='1220' id='cat1220' >
Lastbil/Truck/Entreprenad
</option>
<option value='1240' id='cat1240' >
Skogs- & Lantbruksmaskiner
</option>
<option value='1180' id='cat1180' >
Snöskotrar
</option>
<option value='1200' id='cat1200' >
Snöskoterdelar & tillbehör
</option>
<option value='2000' style='background-color:#dcdcc3;font-weight:bold;' id='cat2000' >
-- FÖR HEMMET --
</option>
<option value='2020' id='cat2020' >
Bygg & Trädgård
</option>
<option value='2040' id='cat2040' >
Möbler & Heminredning
</option>
....
....
...
</select>Sv: Fylla en dropdownlist ifrån 2 tabeller - MVC
<% var categories = (IEnumerable<Category>)ViewData["Categories"]; %>
<select name="category_group" id="category_group" sel_id="" >
<% foreach (var category in categories) { %>
<option value='<%= Html.Encode(category.Value) %>'
<'%=?category.Special ? "style=style='background-color:#dcdcc3;font-weight:bold;'" : "" %>
id='<%= Html.Encode(category.Id) %>' >
<%= Html.Encode(category.Description) %>
<% } %>
</select>
---------
Vad du också kan göra är att göra en nästlad loop. Du loopar igenom alla kategorier, och skriver ut titel-raden, som har bakgrunden. Sedan loopar du igenom subkategorierna efteråt, utan bakgrund.
<% var categories = (IEnumerable<Category>)ViewData["Categories"]; %>
<select name="category_group" id="category_group" sel_id="" >
<% foreach (var category in categories) { %>
<option value='<%= Html.Encode(category.Value) %>'
id='<%= Html.Encode(category.Id) %>'
style=style='background-color:#dcdcc3;font-weight:bold;'>
<%= Html.Encode(category.Description) %>
<% foreach (var subcategory in category.Subcategory) { %>
<option value='<%= Html.Encode(subcategory.Value) %>'
id='<%= Html.Encode(subcategory.Id) %>' >
---<%= Html.Encode(subcategory.Description) %>---
<% } %>
<% } %>
</select>
Jag har inte testat eller kompilerat koden, och det borde vara nått fel i den,men jag tror du förstår konceptetn.
/SvalanSv:Fylla en dropdownlist ifrån 2 tabeller - MVC
Sv: Fylla en dropdownlist ifrån 2 tabeller - MVC
Jag kan inte se att det skulle behövas. Säg till mig om det inte fungerar.
Men det blir ju rätt rörigt, så det kanske skule vara lättare att skriva en metod som genererar allt i ett anrop.
Jag såg nu, när jag kollade igenom koden att jag missade att generera sluttaggar, men jag misstänker att du klarar att lägga in det själv.
/Svalan