none
MVC中分页显示序号的问题 RRS feed

  • 问题

  • 在MVC中,我使用了PagedList 进行数据分页,在视图中我定义

    int i =1;
    .....略
     if (Model != null)
        {
            <table class="table table-hover">
                <thead>
                    <tr>
                        <th>序号</th>
                                 .....略
                    </tr>
                </thead>
            @foreach (var item in Model) {
                <tr>
                    <td>
                     @i++
                    </td>

    类似这样的,虽然能生成序号,但一点分页,数据又重新从1开始,


    于是我在视图模型中

    public class ListForGoodPersonsDeedsVM { public int index { get; set; } //定义了一个存放序号的字段 public int ID { get; set; } public string FullName { get; set; } ........ } 然后 ...... int i = 1; localDB = from x in db.tz_GoodPersonsDeeds orderby x.UID descending, x.InputDateTime descending select new ListForGoodPersonsDeedsVM { index = i++, // 报错“表达式树不能包含赋值运算符”,不知该怎么写,

    // 也不太清楚能否实现我想要的效果 ID = x.ID,

    具体如何实现显示自动连续序号!


    2017年7月29日 9:20

答案

  • 其實 IPagedList 裡面有 PageNumber 跟 PageSize ,你就可以計算出流水號了。

    你的 Model 型別應該是 IPagedList<T> 吧!

        @{
            int i = 1;
         }
    
    @foreach (var item in Model) {
        <tr>
            <td>
                @((Model.PageNumber - 1) * Model.PageSize + i)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CONSUME_DATE)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.DETAILS)
            </td>
        </tr>
    
        { 
            i++;
        }
    }


    2017年7月31日 5:27

全部回复

  • 其實 IPagedList 裡面有 PageNumber 跟 PageSize ,你就可以計算出流水號了。

    你的 Model 型別應該是 IPagedList<T> 吧!

        @{
            int i = 1;
         }
    
    @foreach (var item in Model) {
        <tr>
            <td>
                @((Model.PageNumber - 1) * Model.PageSize + i)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CONSUME_DATE)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.DETAILS)
            </td>
        </tr>
    
        { 
            i++;
        }
    }


    2017年7月31日 5:27
  • 谢谢,刚看到,我之前是自己用存了一份,呵呵,画蛇添足了

      ViewBag.pageNumber = pageNumber;
      ViewBag.pageSize = pageSize;

    @( (Convert.ToInt32(ViewBag.pageNumber) - 1) * Convert.ToInt32(ViewBag.pageSize) + i++ )

    2017年8月6日 2:19