2009-11-19 20 views
0

顯示矩陣我有3類:如何在HTML

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值納默和1,0,1,0 ..爲結果字段值。

  1. 難道光是有沒有顯示這樣一個網格(從對象RP的列表)一個的HtmlHelper: 問題:如果我添加了一個新對象

    問題列數可爲?

  2. 是不是有一個HtmlHelper顯示從DataTable對象的網格(我創建一個SQL查詢呈現此網格)?

+0

首先你的代碼是錯誤的,哪裏收藏? – queen3 2009-11-19 16:25:22

回答

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,否則你將不得不擴展邏輯。