Asp.net n项显示在3列逻辑中
我有n个项目。我想在查看页面的3列中显示它Asp.net n项显示在3列逻辑中,asp.net,asp.net-mvc,logic,Asp.net,Asp.net Mvc,Logic,我有n个项目。我想在查看页面的3列中显示它 @foreach (var x in ViewBag.list) { <tr><td>@x.Name</td></tr> } @foreach(ViewBag.list中的变量x) { @x、 名字 } 但我想在3列中展示它 <tr><td>@x.Name</td><td>@x.Name</td><td>@x.Name</t
@foreach (var x in ViewBag.list)
{
<tr><td>@x.Name</td></tr>
}
@foreach(ViewBag.list中的变量x)
{
@x、 名字
}
但我想在3列中展示它
<tr><td>@x.Name</td><td>@x.Name</td><td>@x.Name</td></tr>
@x。Name@x.Name@x、 名字
那么这样做的逻辑是什么呢?有人帮我吗。不管怎样,这对我很有用
@{
int count = 0;
var tr = new HtmlString("<tr>");
var trclose = new HtmlString("</tr>");
<div class="panel-body noPad">
<table class="table table-hover pdSbasic">
<tr>
@foreach (var pd in ViewBag.PDList)
{
<td><input type="checkbox" class="form-control" /></td>
<td><input type="hidden" class="pdId" value="@pd.PollidutId" />@pd.PollidutName</td>
count++;
if (count % 3 == 0)
{
@tr;
@trclose;
}
}
</tr>
</table>
</div>
}
@{
整数计数=0;
var tr=新的HtmlString(“”);
var trclose=新的HtmlString(“”);
@foreach(ViewBag.PDList中的var pd)
{
@pd.PollidutName
计数++;
如果(计数%3==0)
{
@tr;
@trclose;
}
}
}
您可以使用两个for循环来完成此操作。一个用于行,一个用于列:
@for (var row = 0; row < ViewBag.list.Count(); row++)
{
<tr>
@for (var col = 0; (col + row * 3)< ViewBag.list.Count() && col < 3; col++)
{
<td>@ViewBag.list.ElementAt(row * 3 + col).Name</td>
}
</tr>
}
for(var row=0;row如果您想更改每行
td
元素的数量,只需将3
替换为不同的变量或硬代码即可。看看这是否有帮助。重复?如何根据我的情况采用此代码@对于(int i=0;我是从Mike comment中找到的。它给出了以下错误System.Collections.Generic.List”不包含“elementAtmy backend code var pdlist=new List(500);pdlist=(从a in context.EMPLOYEES在a.PERSON_ID等于b.PERSON_ID,其中a.SUPERVISOR_ID==empId选择新Pollidut.Models.Pollidut{PollidutId=a.EMPLOYEE_ID,})。ToList();ViewBag.PDList=PDList;抱歉,方法名称中有一个输入错误。它是这样的方法:。我将更正代码。再次{“'System.Collections.Generic.List'不包含'ElementAt'”的定义。}您需要为System.Linq
,或者您可以只使用@ViewBag.List[row*3+col]
相反。您没有指定@ViewBag.list
的类型,这就是为什么我使用ElementAt
方法处理列表、数组和IEnumerables(如果包括using语句)。