現在我有這個枚舉到頁面一列單列表的代碼。枚舉到asp.net mvc視圖中的兩列表
有沒有辦法讓兩個colums一直到最後?
<table>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%=Html.Encode(item.PartNo)%>
</td>
</tr>
<% } %>
</table>
現在我有這個枚舉到頁面一列單列表的代碼。枚舉到asp.net mvc視圖中的兩列表
有沒有辦法讓兩個colums一直到最後?
<table>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%=Html.Encode(item.PartNo)%>
</td>
</tr>
<% } %>
</table>
你可以改變foreach循環的for循環更多的靈活性:
<% var itemList = Model.ToList(); %>
<table>
<% for (int i=0; i <= itemList.Count; i+=2))
{ %>
<tr>
<td>
<%= Html.Encode(itemList[i].PartNo) %>
</td>
<td>
<% if (i+1 < itemList.Count)
{
Response.Write(Html.Encode(itemList[i+1].PartNo));
}
%>
</td>
</tr>
<% } %>
</table>
如果你這樣做了很多,你可以考慮將其轉換成HTML輔助輸出的任何列數。
如果你只是想找一個額外的列,你可以保持在foreach,只是增加一個<td></td>
:
<table>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%=Html.Encode(item.PartNo)%>
</td>
<td>
<%=Html.Encode(item.NextPartNo)%>
</td>
</tr>
<% } %>
大廈關閉womp的答案的,這裏有一個例子(未經測試!)它使用枚舉器工作,並可以顯示任意數量的列。這可能會解決您提到的一些問題。
<table><%
int numberOfColumns = 2;
var enumerator = Model.GetEnumerator();
bool endOfEnumerator = !enumerator.MoveNext();
while(!endOfEnumerator)
{ %>
<tr><%
for (int i = 0; i < numberOfColumns; i++)
{ %>
<td>
<%= Html.Encode(enumerator.Current.PartNo) %>
</td><%
if (!enumerator.MoveNext())
{
endOfEnumerator = true;
break;
}
} %>
</tr><%
} %>
</table>
啊是的,謝謝!我養成使用foreach的習慣,忘記使用其他東西! 謝謝! – riverdayz 2010-07-12 19:14:53
我得到一個錯誤上的i <= Model.Count 說 操作者<=不能被應用到int類型和方法組opperands – riverdayz 2010-07-12 19:18:34
應當Model.Count() – rtalbot 2010-07-12 19:22:42