如何在Html中显示矩阵

时间:2009-11-19 15:53:56

标签: html asp.net-mvc grid

我有3个班级:

class R{ string NameR;}

class A{ string NameA;}

Class RP

{

  R objR;

  A objA;

  bool result;

}

我使用NHibernate所以在DB中我有一个表RP:

[Id] [int] IDENTITY(1,1) NOT NULL,

[Result] [bit] NULL,

[RId] [int] NULL,

[AId] [int] NULL

我需要在我的视图中显示如下矩阵:

__ A1 A2 A3

R1 1 0 1

R2 1 1 0

R3 0 0 1

其中A1,A2,A3是NameA的值,R1,R2,R3为NameR,1,0,1,0 ..为Result字段的值。 问题:如果我添加新的A对象

,列数会增加

问题:

  1. 是否有显示此类网格的HtmlHelper(来自RP对象列表)?

  2. 是否有一个HtmlHelper显示DataTable对象的网格(我创建一个呈现此网格的SQL查询)?

1 个答案:

答案 0 :(得分:1)

无论如何,即使你没有提供足够的细节,这里也是如此。如果你有IList< RP>你会做的

 <table>
  <tr>
      <th>R/A</th>
      <% foreach (var a in Model.Select(x => x.objA.NameA).OrderBy(x => x).Distinct()) { %>
           <th><%= a %></th>
      <% } %>
  </tr>
  <% foreach (var data in Model.GroupBy(x => x.objR.NameR)) { %>
      <tr> 
         <td><%= data.Key %></td>
         <% foreach (var aas in data.OrderBy(x => x.objA.NameA)) { %>
            <td><%= aas.result ? "1" : "0" %></td>
         <% } %>
      </tr>
  <% } %>
 </table>

当然,您最好在控制器中计算此值,以便将分组模型而不是列表传递给视图。它假定你总是有确切数量的A,或者你必须稍微扩展逻辑。