2011-08-15 27 views
4

有沒有辦法我可以限制tds爲4或任何數字在下面的設置..請看下面的代碼。現在,它在一行中顯示所有模型項目(因爲它應該根據代碼)。如果項目是一打,他們都顯示一個單一的行..我想要一種方式來顯示這四個在每一行中,而不是在一行中的所有...(我談論表內的表?)可以這個做完了?表內邏輯。爲每個循環格式

<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