2012-05-18 12 views
5

Jestem na małym projekcie, który wymaga użycia framework entity i asp.net mvc3 do wyświetlania wielu do wielu relacyjnych baz danych w widoku macierzy. Trzy stoły zaangażowane są sprzedawca (etykieta Row), produktów (etykieta kolumny) i sprzedaży:Jak wyświetlić tabelę macierzy w asp.net mvc3?

Matrix Table

Jak mogę rozwijać/generują tego rodzaju widoku w ASP.NET mvc3?

<table> 
<tr> 
    <th></th> 
    @foreach (var m in Model) 
    { 
     foreach (var p in m.Products) 
     { 
      <th>@p.ProductName</th> 
     }   
    } 
</tr> 

    @foreach (var m in Model) 
    {    
     foreach (var s in m.SalesPersons) 
     { 
      <tr> 
       <td>@s.PersonName</td> 

      </tr> 
     } 
    } 
@*Sales: a.Amount*@  
</table> 
+0

mógłby po prostu użyć zagnieżdżonych pętli lub, lepiej, tworzenie ViewModel że pasuje do Twojego widoku – 6opuc

Odpowiedz

4

Przekształcenie danych przy użyciu kwerendy LINQ podobne do tego

var salesTable = 
    from s in m.Sales 
    group s by s.SalesPerson.Label into g 
    select new 
    { 
     rowKey = g.Key, 
     rowData = g.Select(s => new { Product = s.Product, Amount = s.Amount }).OrderBy(s => s.Product.Label) 
    }; 

generowania wierszy tabeli jest wtedy łatwo

@foreach (var tableRow in salesTable) 
{ 
    <tr> 
     <td>@tableRow.rowKey</td> 
     @foreach (var sale in tableRow.rowData) 
     { 
      <td>@sale.Amount</td> 
     } 
    </tr> 
} 
Powiązane problemy