2016-10-07 5 views
0

私は垂直のヘッダーと動的な列の数を持つテーブルを作成しようとしています。 ASP.NET MVC Razorとforeachループを使用して列を生成したい。テーブル - 縦のヘッダーと動的な列の数

は、私はすべての列は、行ごとに値を持つヘッダ(行)と列の動的な数の一定の数を、持っている私は取得したい何

Header1 Value1,Value2,Value3 
Header2 Value1,Value2,Value3 
Header3 Value1,Value2,Value3 

モデル:

public class RootViewModel 
{ 
    public List<Column> Columns { get; set; } 
} 
public class Column 
{ 
    public int Header1Value { get; set; } //Value1 
    public int Header2Value { get; set; } //Value2 
    public int Header3Value { get; set; } //Value3 
} 

私は本当にすべてのプロパティの 'foreach'を使用せずにこの問題を解決する方法を知りません。

+0

クラスを使用してテーブルを生成することができますループ –

+0

私は一定の数のヘッダー(行)と動的な列数を持っています。すべての列はすべての行の値を持ちます – adamo94

+0

次に、ビューモデルには最初の列のプロパティと残りの列のコレクションプロパティが必要です。そして 'IEnumerable Values'とすると、2つのループが必要です.1つは行と1列を生成し、もう1つはn値の内部ループ –

答えて

3

ビューに表示する内容を表すようにビューモデルを変更する必要があります。

public class RootViewModel 
{ 
    public List<RowViewModel> Rows { get; set; } 
} 

public class RowViewModel 
{ 
    public string Header{ get; set; } 
    public List<int> Values { get; set; } 
} 

ので、そのビューであなたは `COLUMN`は4つの性質、各列の値の1が必要になり、その後、すべてのあなたの必要性は、単一の` foreach`ある

@model RootViewModel 
<table> 
    @foreach(var row in Model.Rows) 
    { 
     <tr> 
      <td>@row.Header</td> 
      @foreach(var value in row.Values) 
      { 
       <td>@value</td> 
      } 
     </tr> 
    } 
</table> 
関連する問題