【问题标题】:Pagination-asp.net mvc 4分页-asp.net mvc 4
【发布时间】:2013-03-18 02:57:17
【问题描述】:

我在显示有关如何包含上一个和下一个链接的页面时遇到问题... 我正在使用这些代码使用 ASP.Net MVC 4:

查看:

<div class="pagination">
    <ul>
        @for (int i = 1; i <= ViewBag.PagesCount; i++)
        {
            <text>
                <li>@Html.ActionLink(i.ToString(), "Index", new { pagee = i })</li>
            </text>
        }
    </ul>
</div>

控制器:

int offset = 15;

int pagecount = ((pagee - 1) * offset);

int totalPages = 0;
int totalItems = 0;

try
{       
    totalItems = requestform.Count();
    while (totalItems > 0)
    {
        totalItems -= 15;
        totalPages++;
    }
    ViewBag.PagesCount = totalPages;
    return View(requestform.Skip(pagecount).Take(offset).ToList());
}
catch
{
    while (totalItems > 0)
    {
        totalItems -= 15;
        totalPages++;
    }
    ViewBag.PagesCount = totalPages;
    return View(requestform.Skip(pagecount).Take(offset).ToList());
}

请帮帮我。

【问题讨论】:

  • 您遇到什么错误?你遇到了什么问题?
  • 这可能会帮助您进行分页:link
  • 我已经使用 IPageList.MVC 尝试过,但它在我的项目中无法使用多个选项卡......

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


【解决方案1】:

你对这个小扩展PagedList 有什么看法?

【讨论】:

    【解决方案2】:

    要向页面添加分页,首先要安装 PagedList NuGet 包。然后您将在 Index 方法中进行额外的更改,并将分页链接添加到 Index 视图

    请检查此链接 http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

    【讨论】:

    • @subinpanicker-它正在处理一个普通的项目......但是当我尝试在我的项目中使用它时,它有几个选项卡,它不起作用......T_T......请帮我解决这个问题...谢谢
    【解决方案3】:

    我还建议 PagedList 只需通过 NuGet 包管理器添加它,然后,

    修改你的控制器,如下所示:

    public ActionResult Index(int? page)
            {
                var dbtable = db.DbTable.Include(s => s.ID).OrderBy(s => s.StyleName); //ensure records are sorted.
                if (Request.HttpMethod != "GET")
                {
                    page = 1;
                }
                int pageSize = 2;
                int pageNumber = (page ?? 1);
                return View(dbtable.ToPagedList(pageNumber, pageSize));
            }
    

    在视图中替换:

    @model IEnumerable<MyMvcApplication.Models.dbtable>
    

    @model PagedList.IPagedList<MyMvcApplication.Models.dbtable>
    

    替换看起来像的代码

        <th>
                @Html.DisplayNameFor(model => model.ID)
            </th>
    

    <th>
                @Html.DisplayNameFor(model => model.First().ID)
            </th>
    

    在页面末尾&lt;/table&gt;标签后添加:

    <div>
        Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
        @if (Model.HasPreviousPage)
        {
            @Html.ActionLink("<<", "Index", new { page = 1})
            @Html.Raw(" ");
            @Html.ActionLink("< Prev", "Index", new {page = Model.PageNumber - 1})
        }
        else{
         @:<<
         @Html.Raw(" ");
            @:< Prev   
        }
    
        @if (Model.HasNextPage)
        {
            @Html.ActionLink("Next >", "Index", new {page = Model.PageNumber + 1})
            @Html.Raw(" "); 
            @Html.ActionLink(">>", "Index", new {page = Model.PageCount})
        }
        else{
         @:Next >
         @Html.Raw(" ")
    @:>>   
        }
    </div>
    

    【讨论】:

    • 您可以使用@Html.PagedListPager(Model, page =&gt; Url.Action("Index", new { page = page })为您自动生成分页链接...
    【解决方案4】:

    最近我发现酷控件,工具提示,第一个,下一个,最后一个,上一个检查这个mvc 4 paging nuget package,演示web page

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 2020-06-29
      • 2012-05-03
      • 2023-03-10
      相关资源
      最近更新 更多