asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页

当我们需要在asp.net网站中实现数据分页展示的功能时,可以使用GridView控件来实现。下面是实现asp.net GridView 分页展示的完整攻略。

安装PagedList.Mvc

我们可以通过Nuget安装PagedList.Mvc,在Manage NuGet Packages界面搜索PagedList.Mvc进行安装。这是一个非常常用的分页库,可以大大减轻分页的开发难度。

安装完成后,我们可以在代码中使用PagedList.Mvc的相关方法,实现快速方便的分页功能。

绑定数据源到GridView控件

在ASP.NET webform代码中,我们可以使用GridView控件来展示数据库中的数据。GridView控件可以与数据源进行绑定,并在网站中将数据以表格形式进行展示。

以下是GridView与数据源进行绑定的示例代码:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="ProductID" HeaderText="ProductID" SortExpression="ProductID" />
                <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" />
                <asp:BoundField DataField="CategoryName" HeaderText="CategoryName" SortExpression="CategoryName" />
                <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" SortExpression="UnitPrice" />
            </Columns>
        </asp:GridView>

// 数据源SQLDataSource1
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT [ProductID], [ProductName], [CategoryName], [UnitPrice] FROM [ProductsWithCategories]"></asp:SqlDataSource>

GridView分页

下面是使用PagedList.Mvc库实现GridView分页的示例代码:

  1. 首先,在Controller中查询数据:
public ActionResult Index(string sortOrder, string searchString, int? page)
{
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
    var students = from s in db.Students
                   select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        students = students.Where(s => s.LastName.Contains(searchString)
                               || s.FirstMidName.Contains(searchString));
    }
    switch (sortOrder)
    {
        case "name_desc":
            students = students.OrderByDescending(s => s.LastName);
            break;
        case "Date":
            students = students.OrderBy(s => s.EnrollmentDate);
            break;
        case "date_desc":
            students = students.OrderByDescending(s => s.EnrollmentDate);
            break;
        default:
            students = students.OrderBy(s => s.LastName);
            break;
    }
    int pageSize = 3;
    int pageNumber = (page ?? 1);
    return View(students.ToPagedList(pageNumber, pageSize));
}
  1. 在View中分页展示数据,使用PagedList.Mvc的分页方法:
@{
    ViewBag.Title = "Students";
}
<h2>Students</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>

@using (Html.BeginForm())
{
    <p>
        Find by name: @Html.TextBox("SearchString") <input type="submit" value="Search" />
    </p>
}
<table class="table">
    <tr>
        <th>
            @Html.ActionLink("Name", "Index", new { sortOrder = ViewBag.NameSortParm })
        </th>
        <th>
            @Html.ActionLink("Enrollment Date", "Index", new { sortOrder = ViewBag.DateSortParm })
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.LastName) , @Html.DisplayFor(modelItem => item.FirstMidName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.EnrollmentDate)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
            @Html.ActionLink("Details", "Details", new { id=item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.ID })
        </td>
    </tr>
}

</table>

<div>
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount

    @Html.PagedListPager(Model, page => Url.Action("Index", 
        new { page, sortOrder = ViewBag.CurrentSort, searchString = ViewBag.CurrentFilter }))
</div>

总结

通过上述步骤,我们就可以简单轻松的实现asp.net GridView分页功能。使用PagedList.Mvc库可以让我们更加方便地实现分页,提高开发效率。同时,在实现GridView和数据源的绑定时,我们也可以根据具体需求灵活设置展示效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS函数验证总结(方便js客户端输入验证)

    JS函数验证是用JavaScript编写的表单客户端输入验证,目的是方便用户输入验证,减少对服务器沟通请求,缩短请求响应时间和提高用户体验。下面是JS函数验证的完整攻略: 1.概述 JS函数验证是对用户的输入数据预先验证,验证的方式可以使用JS正则表达式、API等方式,可以在用户提交表单到服务器之前,即在本地网页浏览器中对数据进行验证。这样可以减少不必要的请…

    JavaScript 2023年6月11日
    00
  • javascript常用函数(2)

    当谈到JavaScript时,函数是其中最重要的概念之一。它允许我们将一坨代码封装在一起,并在需要时重复使用。在本篇文章中,我们将讨论一些常用的JavaScript函数,包括:Array.prototype.some、Array.prototype.find、Array.prototype.filter、setTimeout和setInterval。 Arr…

    JavaScript 2023年5月27日
    00
  • JS删除数组中某个元素的四种方式总结

    JS删除数组中某个元素的四种方式总结 JavaScript中有多种方式可以删除数组中某个元素,本文将总结其中常用的四种方式并且进行详细介绍。 方法一:splice() splice()方法可以在数组中添加、删除或替换元素。可以通过指定两个参数来删除一个或多个元素。第一个参数指定从哪个索引开始进行删除,第二个参数指定要删除的元素个数。以下是该方法的语法: ar…

    JavaScript 2023年6月10日
    00
  • 原生js仿jquery实现对Ajax的封装

    下面是“原生js仿jquery实现对Ajax的封装”的完整攻略。 一、准备工作 在编写封装函数之前,我们需要首先准备好相关的环境和资源,包括: 一个封装Ajax的函数(我们将在下面进行编写) 一个浏览器环境,可以使用Chrome浏览器、Firefox浏览器等 一个文本编辑器,可以使用Sublime Text、Visual Studio Code等 一份API…

    JavaScript 2023年6月11日
    00
  • MySQL pt-slave-restart工具的使用简介

    当MySQL复制出现异常时(如主从延迟、主从不同步),我们可以使用Percona Toolkit中的pt-slave-restart工具来帮助我们快速地解决问题。本篇攻略将详细讲解如何使用pt-slave-restart工具。 什么是pt-slave-restart工具 pt-slave-restart工具是Percona Toolkit中的一款工具,用于重…

    JavaScript 2023年5月28日
    00
  • Javascript实现秒表倒计时功能

    下面是“Javascript实现秒表倒计时功能”的完整攻略。 1. 准备工作 在开始编写代码实现倒计时功能之前,我们需要先准备一些基本的内容。具体包括以下几点: 1.1 确定计时的起点和终点 倒计时功能要想实现,我们需要确定计时的起点和终点。你可以自己设定一个时间,如5分钟(300秒),也可以通过用户输入动态获取倒计时的时间。 1.2 设计页面元素 在页面上…

    JavaScript 2023年5月27日
    00
  • JavaScript 声明私有变量的两种方式

    下面是JavaScript声明私有变量的两种方式的完整攻略。 声明私有变量的两种方式 在JavaScript中,私有变量是指只能在类或对象内部访问的变量。通常情况下,我们用闭包或Symbol来实现私有变量的声明。 1. 闭包实现私有变量 闭包是指一个函数返回另一个函数,这个被返回的函数可以访问原函数的内部变量。下面来看一个闭包实现私有变量的示例: funct…

    JavaScript 2023年6月10日
    00
  • 详解JavaScript UTC时间转换方法

    详解JavaScript UTC时间转换方法 在JavaScript中,我们通常使用的日期对象保存的是本地时间。但是,在跨时区使用的情况下,UTC时间经常会被使用。要将本地时间转换为UTC时间,或者将UTC时间转换为本地时间,可以使用JavaScript提供的函数来完成。下面介绍JavaScript UTC时间转换的方法。 1. new Date(Date.…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部