5

私は、エンティティ フレームワークと asp.net mvc3 を使用して多対多の関係データベースをマトリックス ビューで表示する小さなプロジェクトに取り組んでいます。関連する 3 つのテーブルは、SalesPerson (行ラベル)、Product(列ラベル)、および Sales です。

マトリックス表

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>
4

1 に答える 1

4

このような LINQ クエリを使用してデータを変換します

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

テーブル行の生成は簡単です

@foreach (var tableRow in salesTable)
{
    <tr>
        <td>@tableRow.rowKey</td>
        @foreach (var sale in tableRow.rowData)
        {
            <td>@sale.Amount</td>
        }
    </tr>
}
于 2012-05-18T08:26:33.513 に答える