一个Asp.Net的显示分页方法 附加实体转换和存储过程 带源码下载

Asp.Net 显示分页方法攻略

在 Asp.Net 开发中,经常需要实现分页功能,下面我们来讲解一个基于实体转换和存储过程的显示分页方法,包含完整的源码示例和说明。

实现思路

该方法的实现基于以下几个步骤:

  1. 创建存储过程,使用 SQL 语句实现分页查询。
  2. 创建实体类,用于存储分页查询结果。
  3. 创建数据访问层,通过实体转换调用存储过程,返回分页数据。
  4. 在页面中调用数据访问层获取数据源,并进行分页显示。

存储过程实现分页查询

假设我们要查询一个名为“person”的表,并按照“id”字段进行分页查询,查询结果包含“id”和“name”字段。对应的存储过程如下:

CREATE PROCEDURE [dbo].[proc_get_persons_paging]
    @PageIndex INT = 0, -- 当前页索引
    @PageSize INT = 10 -- 每页记录数
AS
BEGIN
    SET NOCOUNT ON;

    SELECT id, name FROM (
        SELECT ROW_NUMBER() OVER (ORDER BY id ASC) AS rownum, id, name
        FROM person
    ) AS t
    WHERE rownum >= (@PageIndex * @PageSize + 1) AND rownum <= ((@PageIndex + 1) * @PageSize)
    ORDER BY rownum ASC;
END

实体类定义

我们可以定义一个名为“Person”的实体类,用于存储分页查询结果:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

数据访问层实现

数据访问层负责调用存储过程,并将查询结果转换为实体类列表。我们可以通过 Dapper 实现实体转换:

public class PersonRepository
{
    private readonly IDbConnection _connection;

    public PersonRepository(IDbConnection connection)
    {
        _connection = connection;
    }

    public List<Person> GetPersonsPaging(int pageIndex, int pageSize)
    {
        var parameters = new
        {
            PageIndex = pageIndex,
            PageSize = pageSize
        };

        string sql = "dbo.proc_get_persons_paging";
        var persons = _connection.Query<Person>(sql, parameters, commandType: CommandType.StoredProcedure).ToList();
        return persons;
    }
}

分页显示

在页面中,我们可以使用 GridView 控件实现分页显示,并在数据绑定事件中调用数据访问层获取数据源。

<asp:GridView ID="gridView1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Id" HeaderText="编号" />
        <asp:BoundField DataField="Name" HeaderText="姓名" />
    </Columns>
</asp:GridView>
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        int pageIndex = 0;
        int pageSize = 10;
        var persons = new PersonRepository(_connection).GetPersonsPaging(pageIndex, pageSize);
        gridView1.DataSource = persons;
        gridView1.DataBind();
    }
}

示例说明

示例1:查询前10条数据

假设我们要查询前10条 person 数据,查询结果如下:

int pageIndex = 0;
int pageSize = 10;
var persons = new PersonRepository(_connection).GetPersonsPaging(pageIndex, pageSize);

示例2:查询第11条至第20条数据

假设我们要查询第11条至第20条 person 数据,查询结果如下:

int pageIndex = 1;
int pageSize = 10;
var persons = new PersonRepository(_connection).GetPersonsPaging(pageIndex, pageSize);

总结

通过以上步骤,我们可以实现一个基于实体转换和存储过程的分页查询方法,可以满足大多数分页查询需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一个Asp.Net的显示分页方法 附加实体转换和存储过程 带源码下载 - Python技术站

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

相关文章

  • 基于jsTree的无限级树JSON数据的转换代码

    关于基于 jsTree 的无限级树 JSON 数据的转换代码,我来给您讲解一下完整攻略。 首先,我们需要了解一下 jsTree 的数据结构。它使用 JSON 对象来表示树形结构,其中每个节点都是一个对象,包含以下属性: “id”:节点的唯一标识符; “text”:节点的文本; “icon”:节点的图标; “state”:节点的状态,包括是否被选中、是否展开等…

    JavaScript 2023年5月28日
    00
  • js下写一个事件队列操作函数

    下面是详细讲解“js下写一个事件队列操作函数”的完整攻略。 什么是事件队列? 事件队列是 JavaScript 中用于管理异步任务的机制。异步任务例如 Ajax 请求、setTimeout、setInterval 等,这些任务会在一个单独的线程中执行,不会与页面渲染等同步任务同时进行,因此对于编写高效、优化的 JavaScript 代码十分重要。 编写一个事…

    JavaScript 2023年5月28日
    00
  • js禁止页面刷新与后退的方法

    下面是“js禁止页面刷新与后退的方法”的完整攻略。 1. 禁止页面刷新的方法 1.1 使用onbeforeunload事件 onbeforeunload事件是在页面即将卸载前触发的事件,可以用来在用户离开当前页面之前做一些操作,比如弹出确认框,阻止页面刷新等等。 通过监听onbeforeunload事件,并在事件处理函数中返回一个字符串,可以让浏览器弹出一个…

    JavaScript 2023年6月11日
    00
  • js实现数据双向绑定(访问器监听)

    数据双向绑定是前端开发中常用的技术,可以实现数据和页面UI的同步更新。其中一种常用的实现方式是使用访问器监听。以下是实现数据双向绑定的完整攻略: 步骤一:创建数据对象 首先,需要在Javascript中创建一个数据对象,该对象的属性可以通过访问器方法来监控对象属性的读取和修改。 let data = {} // 创建一个数据对象 Object.defineP…

    JavaScript 2023年6月10日
    00
  • JavaScript 异步调用

    JavaScript 异步调用 在JavaScript中,异步调用是指在执行某个函数时,不会等待该函数的返回,而是继续执行后面的语句,同时该函数在后台继续执行。当该函数执行完成并有结果后会再次调用回调函数进行处理。 异步调用主要用于I/O操作,如Ajax请求、定时器以及JavaScript中的事件处理等,而同步调用则是指代码按顺序执行,并且在某个函数执行完成…

    JavaScript 2023年5月28日
    00
  • JavaScript 语句之常用 for 循环详解

    JavaScript 语句之常用 for 循环详解 for 循环是 JavaScript 中最基本的循环结构之一,它可以让我们重复执行一个代码块多次,非常的灵活、简单易懂。在本文中,我们将详细讲解 for 循环的语法、用法以及示例说明。 for 循环的语法 for 循环的语法如下: for (初始化表达式; 条件表达式; 循环后操作表达式) { // 循环代…

    JavaScript 2023年5月28日
    00
  • javascript实现阻止iOS APP中的链接打开Safari浏览器

    要在iOS APP中实现阻止链接打开Safari浏览器的功能,可以通过以下方法实现: 1. 使用JavaScript 通过JavaScript代码可以控制链接的行为,让其在当前页面打开,而不是打开一个新的Safari浏览器页面。具体的代码实现如下: // 拦截所有超链接打开 safari document.addEventListener(‘click’, …

    JavaScript 2023年6月11日
    00
  • JS实现视频弹幕效果

    下面是 JS 实现视频弹幕效果的完整攻略: 准备工作 首先,我们需要准备好以下两个文件:- 视频文件- 弹幕 JSON 文件 其中,弹幕 JSON 文件应该包含以下字段:- text:弹幕文本内容- time:弹幕出现时间,单位为秒- color:弹幕颜色,可以是颜色代码或颜色名称 实现步骤 在 HTML 中添加视频和画布元素 在 HTML 中添加一个 vi…

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