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

yizhihongxing

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日

相关文章

  • asp.net 操作cookie的简单实例

    下面我将详细讲解“ASP.NET 操作 Cookie 的简单实例”完整攻略。 1. 什么是 Cookie? Cookie 是一种被网站服务器发送给用户浏览器的短文本字符串,通常用于记录用户的一些信息,如用户名、购物车信息等等。它被浏览器保存并用于后续的请求中,让网站能够更好地向用户提供服务。 2. ASP.NET 如何操作 Cookie? ASP.NET 中…

    JavaScript 2023年6月10日
    00
  • JavaScript Math.floor方法(对数值向下取整)

    JavaScript Math.floor方法 Math.floor() 方法会返回小于等于所传参数的最大整数。 语法 Math.floor(x) 参数 x:必需。一个数值,将被下舍入为整数。 返回值 返回小于等于 x 的最大整数。 示例1:向下取整 var a = Math.floor(4.3); // 4 var b = Math.floor(9.999…

    JavaScript 2023年5月28日
    00
  • 在模板页面的js使用办法

    在模板页面,我们可以使用JavaScript来通过DOM操作实现动态效果,或者向后台发送请求获取数据等。下面是在模板页面中使用JavaScript的攻略: 1. 引入JavaScript文件 在模板页面中使用JavaScript需要引入对应的JavaScript文件。可以使用script标签来引入,如下所示: <script src="js/…

    JavaScript 2023年6月11日
    00
  • javascript模拟实现ajax加载框实例

    以下是使用 JavaScript 模拟实现 ajax 加载框的完整攻略: 实现思路 创建一个遮罩层,并设置其 z-index 值为一个比较大的数字,遮罩整个页面; 在遮罩层中添加一个加载框元素,并使用 CSS 进行设置和样式定制; 使用 JavaScript 编写一个可以请求服务器数据的对象,以及在请求过程中显示遮罩层及加载框的方法; 在处理完请求后,隐藏遮…

    JavaScript 2023年6月11日
    00
  • 详解javascript中的事件处理

    详解JavaScript中的事件处理 什么是事件处理? 事件处理是指通过JavaScript来处理HTML或者DOM中的各种事件,例如用户点击按钮、提交表单、滚动网页等等。事件处理使得网页能够在用户交互过程中获得更好的响应和体验。 在HTML中添加事件处理 在HTML中添加事件处理是最简单的方式,我们可以使用on属性来给HTML元素添加事件处理函数。例如: …

    JavaScript 2023年5月18日
    00
  • JavaScript:Date类型全面解析

    JavaScript: Date类型全面解析 Date 类型是 JavaScript 中最常用的类型之一,它可以用于日期和时间的操作。这篇文章将全面讲解 Date 类型的相关知识。 创建 Date 对象 可以使用 new 操作符来创建一个 Date 对象,如下面的代码: const now = new Date(); 这个对象将包含当前日期和时间的信息。 另…

    JavaScript 2023年5月27日
    00
  • Javascript倒计时代码

    JavaScript 倒计时能够给网站或者应用程序带来极佳的用户体验,它通常用于页面的时间限制、登录等场景。下面是 JavaScript 倒计时的完整攻略。 步骤1:创建 HTML 页面 首先,我们需要在 HTML 页面中添加一个画布元素 canvas 以及 JavaScript 倒计时所需要的 HTML 元素: <!DOCTYPE html> …

    JavaScript 2023年5月27日
    00
  • js读取json的两种常用方法示例介绍

    下面是详细的攻略: JS读取JSON的两种常用方法示例介绍 简介 JSON(JavaScript Object Notation)是一种数据交换格式,它具有轻量、易读、易写等特点,并且在前后端分离的开发模式中得到了广泛应用。本篇文章主要介绍JS读取JSON的两种常用方法,以及实际代码示例。 方法一:XMLHttpRequest XMLHttpRequest对…

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