代码之家  ›  专栏  ›  技术社区  ›  Vikas

如何以矩阵形式显示数据-ASP.NET MVC

  •  0
  • Vikas  · 技术社区  · 16 年前

    我有一张桌子

    1)身份证 2)日期 3)成绩

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

    在一页上,我将如何显示3个日期(3个后续日期,存储在表格中)的记录。

    格式应该像….

    日期1日期2日期3

    得分得分得分

    得分得分得分

    得分得分得分

    ………

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

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

    请帮帮我…

    根据公众需求更新

    使用

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

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

    上面的结构怎么样??

    如果你不明白…

    记录:

    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

    显示

    2009年2月21日2009年2月23日2009年2月24日

    29 55 53

    50 44|

    54 66|

    77℃

    1 回复  |  直到 16 年前
        1
  •  1
  •   eu-ge-ne    16 年前

    我已经把这个从我的脑海里发出来了-所以可能会有打字错误。

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

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

    在控制器中,创建ScoreColumnView模型的列表(假设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;
    }
    

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