How can I display a matrix table in asp.net mvc3?

耗尽温柔 提交于 2019-12-23 12:09:07

问题


I'm on a little project that involves using entity framework and asp.net mvc3 to display many to many relationship database in a matrix view. The three tables involved are SalesPerson (Row label), Product(Column label) and Sales:

How can I develop/generate this kind of view in 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>

回答1:


Transform your data using a LINQ query similar to this one

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

Generating table rows is then easy

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


来源:https://stackoverflow.com/questions/10647786/how-can-i-display-a-matrix-table-in-asp-net-mvc3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!