2011-08-15 6 views
4

tdsを4に制限する方法がありますか、または以下のコードで任意の数を設定してください。以下のコードを参照してください。今は、すべてのモデル項目を1行に表示します(コードに従って)。アイテムがダースの場合、それらはすべて1行で表示されます。この行をすべて1行ではなく各行に表示する方法をお伝えしたいと思います(テーブル内のテーブルについて話していますか?)終わり?テーブル内のロジック。フォーマットするための各ループ用

<table> 
    <tr> 
     @foreach (var item in Model) 
     { 
      <td>  
       @Html.DisplayFor(modelItem => item.fld1) 
       @Html.DisplayFor(modelItem => item.fld2)      
      </td>  
     } 
    </tr> 
</table> 

答えて

3

あなたは可能性がグループ化:

@{ 
    var chunkSize = 4; 
    var groupedResult = 
     from i in Model.Select((value, index) => new { Value = value, Index = index }) 
     group i.Value by i.Index/chunkSize into g 
     select g; 
} 

<table> 
    @foreach (var result in groupedResult) 
    { 
     <tr> 
      @foreach (var item in result) 
      { 
       <td> 
        @Html.DisplayFor(modelItem => item.fld1) 
        @Html.DisplayFor(modelItem => item.fld2) 
       </td> 
      } 
     </tr> 
    } 
</table> 

はもちろん、あなたがこれを行う必要があるという事実は、あなたのビューモデルは、このビューに適応されていないことを意味します。それを適応させて、あなたのコントローラーアクション内でこのグループ分けを実行してください。あなたのビューはシンプルで読みやすくなり、スパゲッティコードに似ていません。

+0

非常に洗練されたソリューションです。スーパー。 – ZVenue

関連する問題