如何以矩阵形式显示数据 - Asp.Net MVC

时间:2009-05-23 08:47:31

标签: asp.net-mvc

我有一个表结构,如

1)标识 2)日期 3)评分

按日期过滤,我可以显示行数(显示字段:分数)。

并在一个页面上显示3个日期的记录(3个结果日期,存储在表格中)。

格式应该像......

日期1日期2日期3

得分分数

得分分数

得分分数

...... ......

我应该使用现有的Model Classes创建自己的模型吗?

我不知道你会想到什么,但在这种情况下,用户控制能帮助我吗?

请帮助我......

公共需求更新

使用

<% foreach (var item in Model) { %>
<% } %>

我可以在索引视图中轻松显示每条记录。

上面的结构怎么样?

如果你没有那么......

记录:

1 21/2/2009 29

2 21/2/2009 50

3 21/2/2009 54

2 21/2/2009 77

2 23/2/2009 55

2 23/2/2009 44

2 23/2/2009 66

2 24/2/2009 53

显示

21/2/2009 | 23/2/2009 | 24/2/2009

29 | 55 | 53

50 | 44 |

54 | 66 |

77 |

1 个答案:

答案 0 :(得分:1)

我已经在脑海中发布了这个 - 所以可能会出现拼写错误。

首先,您需要一个自定义模型:

public class ScoreColumnViewModel {
    public DateTime Date;
    public List<int> Score;
}

在你的Controller中创建一个ScoreColumnViewModel列表(假设Linq-To-Sql):

var dates = /* dates to select */

var scoreColumns = dates.Select(date =>
    new ScoreColumnViewModel {
        Date = date;
        Score = DB.Scores.Where(x => x.Date == date).
                    Select(x => x.Score).ToList();
    }
).ToList();

在您的视图中:

<% foreach(var column in Model) { %>
    <table>
        <tr><th><%= column.Date %></th></tr>
        <% foreach(var score in column.Scores) { %>
            <tr><td>score</td></tr>
        <% } %>
    </table>
<% } %>

在你的css中:

table {
    float: left;
}

我的解决方案并不理想,但它可能是您的起点。