首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在asp.net mvc中处理分页?

在ASP.NET MVC中处理分页,可以使用以下步骤:

  1. 创建一个ViewModel类,用于存储分页数据和分页信息。
代码语言:csharp
复制
public class PaginatedList<T> : List<T>
{
    public int PageIndex { get; private set; }
    public int TotalPages { get; private set; }
    public int PageSize { get; private set; }
    public int TotalCount { get; private set; }

    public PaginatedList(IEnumerable<T> items, int count, int pageIndex, int pageSize)
    {
        TotalCount = count;
        PageSize = pageSize;
        PageIndex = pageIndex;
        TotalPages = (int)Math.Ceiling(count / (double)pageSize);

        AddRange(items);
    }

    public bool HasPreviousPage
    {
        get
        {
            return (PageIndex > 1);
        }
    }

    public bool HasNextPage
    {
        get
        {
            return (PageIndex< TotalPages);
        }
    }

    public static PaginatedList<T> Create(IQueryable<T> source, int pageIndex, int pageSize)
    {
        var count = source.Count();
        var items = source.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
        return new PaginatedList<T>(items, count, pageIndex, pageSize);
    }
}
  1. 在Controller中,使用PaginatedList类来处理分页。
代码语言:csharp
复制
public ActionResult Index(int? page)
{
    int pageSize = 10;
    int pageNumber = (page ?? 1);

    var items = db.Items.OrderBy(i => i.Id);
    var model = PaginatedList<Item>.Create(items, pageNumber, pageSize);

    return View(model);
}
  1. 在View中,使用PaginatedList类来显示分页信息。
代码语言:html
复制
@model PaginatedList<Item><table>
    <tr>
        <th>Id</th>
        <th>Name</th>
    </tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item.Id</td>
            <td>@item.Name</td>
        </tr>
    }
</table>

<div>
    @if (Model.HasPreviousPage)
    {
        <a href="@Url.Action("Index", new { page = Model.PageIndex - 1 })">Previous</a>
    }
    @if (Model.HasNextPage)
    {
        <a href="@Url.Action("Index", new { page = Model.PageIndex + 1 })">Next</a>
    }
</div>

这样,在ASP.NET MVC中就可以实现分页功能了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET MVC5 实现分页查询

对于大量数据的查询和展示使用分页是一种不错的选择,这篇文章简要介绍下自己实现分页查询的思路。 分页需要三个变量:数据总量、每页显示的数据条数、当前页码。...= new SqlConnection(ConnectionString); dbConnection.Open(); return dbConnection; } //获取数据库中数据的总条数...在App_Code文件夹中添加PageHelper.cshtml文件封装绘制按钮的代码,这里需要注意一点,使用VS发布站点时App_Code文件夹中的文件不会被打包,需要手动拷贝App_Code文件夹中的文件到站点中...) { selected.css('background-color', '#E1E1E1'); } } 在前台页面中调用即可绘制分页按钮...以上是自己对于实现分页的思路,绘制分页按钮的方法过长,不是一个好的方案,若各位读者有更好的解决方案还望告知。文章最后推荐一个简单易用的分页组件X.PagedList。

3K30
  • 如何在 Spring MVC 中处理表单提交

    如何在 Spring MVC 中处理表单提交 摘要 嗨,我是猫头虎博主。在本篇博文中,我们将探讨在Spring MVC框架中处理表单提交的方法。...随着SEO的不断演变,理解并掌握表单处理技术是每个Java Web开发者必备的技能。本文旨在为你提供一种清晰、简洁的方法来处理Spring MVC中的表单提交。...Spring MVC 中的表单处理 配置控制器 在Spring MVC中,我们通常会创建一个控制器来处理表单提交。控制器中的方法会接收用户输入的数据,进行必要的处理,并返回结果。...Spring MVC中处理表单提交,包括配置控制器、创建模型对象、创建表单视图和进行数据验证。...这些基本知识和技能为我们提供了在Spring MVC中构建交互式Web应用程序的基础。希望这篇文章能为你在Spring MVC中处理表单提交提供有用的指导和帮助。

    23210

    如何在 ASP.NET MVC 中集成 AngularJS(1)

    另外,在 ASP.NET MVC 模式下,一些业务逻辑是可以被最终写入在 MVC 的控制器中。在MVC控制器中,写入代码来控制表示层中的信息,这是很有诱惑力的。...幸运的是,捆绑和压缩是 ASP.NET 4.5 ASP.NET 中的一项功能,可以很容易地将多个文件合并或捆绑到一个文件中。你可以创建 CSS,JavaScript 和其他包。...你可以在 MVC 路由表中以一种通配符的路由来处理你的路由,但我更愿意使用明确的路由表,并使得 MVC 拒绝所有无效的路由。...ASP.NET MVC 中集成 AngularJS 的第一部分内容,后续内容会在本系列的后两篇文章中呈现,敬请期待!...ASP.NET MVC开发时,可以借助 ComponentOne Studio ASP.NET MVC 这一款轻量级控件,它与 Visual Studio 无缝集成,完全与 MVC6 和 ASP.NET

    7.6K60

    七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

    第三天我们将学习Asp.Net中数据处理功能,了解数据访问层,EF,以及EF中常用的代码实现方式,创建数据访问层和数据入口,处理Post数据,以及数据验证等功能。...系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——...ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理 七天学会ASP.NET MVC...(六)——线程问题、异常处理、自定义URL 七天学会ASP.NET MVC(七)——创建单页应用 目录: 数据访问层 实体框架(EF)简述 什么是代码优先的方法?...在 Asp.Net MVC中有个 Model Binder的概念: 无论请求是否由带参的action方法生成,Model Binder都会自动执行。

    5.3K100

    ASP.NET中的几种分页

    https://blog.csdn.net/huyuyang6688/article/details/39644255         1、通过DataGrid控件实现分页         ASP.NET...中的DataGrid控件自带了分页功能,当绑定了DataGrid的数据源之后,需要对DataGrid控件进行一些设置: ?        ...3、通过存储过程分页        通过存储过程实现分页,根据条件,只从数据库中提取出要显示的那一页中的数据,那么就涉及到了假如数据库中共有100条数据,如何从数据库中取出第50到第60条数据来。...这时想到了牛腩大哥视频里所讲的真假分页以及如何提取表中中间连续的几条数据。        在程序中定义如下变量pageSize(每个页面显示多少条记录)、curPage(当前在第几页)。...“真分页”,而前面的方法即取出所有数据的分页方法就是“假分页”。

    2.6K20

    ASP.NET 2.0数据处理之高级分页排序

    GridView控件中的选择操作纯粹是一个UI概念,它的SelectedIndex属性与表格的可 GridView控件中的"选择"操作纯粹是一个...UI概念,它的SelectedIndex属性与表格的可视数据行中的当前被选中的行的索引相对应。...如果你启用了表格的分页和排序功能,在执行分页或排序操作之后,SelectedIndex的值仍然不会变化,因此在执行这些操作之后,一个新数据行被选中了。...在某些环境下,保留对指定数据行的选中更好,即使该行在表格的当前页面中并不可视。下面的例子演示了如何在排序和分页操作之后仍然保留当前选中的数据行。...当这个特性被激活的时候,不支持在CommandField(命令字段)中显示"选择"按钮。

    1.3K20
    领券