2012-05-18 11 views
5

Estoy en un pequeño proyecto que implica el uso de entity framework y asp.net mvc3 para mostrar una base de datos de relaciones de muchos a muchos en una vista de matriz. Las tres tablas involucradas son vendedor (etiqueta de la fila), producto (etiqueta de columna) y Ventas:¿Cómo puedo visualizar una tabla de matriz en asp.net mvc3?

Matrix Table

¿Cómo puedo desarrollar/generar este tipo de vista en MVC3 asp.net?

<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

Se podía utilizar bucle anidado o, mejor, crear modelo de vista que trajes para su vista – 6opuc

Respuesta

4

transformar los datos mediante una consulta LINQ similares a éste

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) 
    }; 

Generación de filas de la tabla Es entonces fácil

@foreach (var tableRow in salesTable) 
{ 
    <tr> 
     <td>@tableRow.rowKey</td> 
     @foreach (var sale in tableRow.rowData) 
     { 
      <td>@sale.Amount</td> 
     } 
    </tr> 
} 
Cuestiones relacionadas