【问题标题】:n items show in 3 column logicn 项以 3 列逻辑显示
【发布时间】:2023-03-12 02:43:01
【问题描述】:

我有 n 个项目。我想在查看页面的 3 列中显示它。

@foreach (var x in ViewBag.list)
{
<tr><td>@x.Name</td></tr>
}

但我想在 3 列中显示它。

<tr><td>@x.Name</td><td>@x.Name</td><td>@x.Name</td></tr>

那么这是什么逻辑呢?谁帮帮我。

【问题讨论】:

标签: asp.net asp.net-mvc logic


【解决方案1】:

您可以使用两个 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>
}

如果您想更改每行 td 元素的数量,只需将 3 替换为变量或硬代码即可。

【讨论】:

  • 它给了我这个错误 System.Collections.Generic.List' does not contain a definition for 'elementAt
  • 我的后端代码 var pdlist = new List(500); pdlist = (from a in context.EMPLOYEES join b in context.PERSONS on a.PERSON_ID 等于 b.PERSON_ID 其中 a.SUPERVISOR_ID == empId select new Pollidut.Models.Pollidut { PollidutId = a.EMPLOYEE_ID, }).ToList() ; ViewBag.PDList = pdlist;
  • 抱歉,方法名有错别字。就是这个方法:msdn.microsoft.com/en-us/library/vstudio/…。我会更正代码。
  • 再次{"'System.Collections.Generic.List'不包含'ElementAt'的定义"}
  • 您需要为System.Linq 包含一个using 语句,或者您可以只使用@ViewBag.list[row*3 + col]。您没有指定 @ViewBag.list 的类型,这就是我使用 ElementAt 方法的原因,因为它适用于列表、数组和 IEnumerables(如果包含 using 语句)。
【解决方案2】:

无论如何这对我有用。

  @{
            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>
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2020-05-09
    • 2023-02-09
    • 2021-12-17
    相关资源
    最近更新 更多