行动下移篇之——aspnetpager分页控件

2023-11-05 03:30

本文主要是介绍行动下移篇之——aspnetpager分页控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


概述

        在对网页上的记录进行分页显示时,一般用到两种方式,分别是假分页和真分页。假分页就是从数据库中取出所有记录然后再进行分页;而真分页相对来说就简单多了,真分页只需要从数据库中取出当前页需要显示的记录即可。如果你的记录数据量比较小,用哪种方法都可以,如果记录数据量特别大,这时就需要用我们的真分页来提高我们的效率。

       在这里我们用aspnetpager分页控件来实现我们的真分页。aspnetpager分页控件下载的地址是:http://www.webdiyer.com/Controls/AspNetPager/Downloads

 

实现过程

         在正式真分页实现之前,我们还需要说明一点,我们的aspnetpager将分页功能完成后还需要一个绑定数据的控件与之配合,我这里采用的是GridView控件,关于GridView控件本身也可以实现分页功能,但它属于假分页,实现起来也比较简单只需要设置两个属性(AollowPagingPageSize)即可完成,我们就不赘余了,现在进入我们的实现过程。

 

 1.添加AspNetPager控件

     在我们vs的工具箱——右击——选择项——浏览——选择,选择完后系统会自动添加控件,到此我们该控件就添加进工具箱了,接下来就像一般控件一样拉到我们添加的页面就可。



 


 


 


 

2.实现代码

    我是采用三层架构并且利用我们的存储过程实现的我们分页显示的功能,具体步骤包括:

         a.建立存储过程查询语句

         b.数据层进行数据查询

         c.前台代码调用

 

 

a.建立存储过程查询语句

    首先我们要先从数据库查询所要显示的记录,我是采用存储过程实现的这个功能,下面这就是我们存储过程的代码:

set ANSI_NULLS ON
setQUOTED_IDENTIFIER ON
go--=============================================
--Author:        张文康
-- Create date:2013-8-7
--Description:        按页查询新闻
--=============================================
ALTER PROCEDURE[dbo].[news_selectByPage]
@startIndex  int,
@endIndex int
AS
BEGIN
with temptbl as (
SELECT ROW_NUMBER()OVER (ORDER BY id desc)AS Row, * from news )
SELECT * FROMtemptbl where Row between @startIndex and @endIndex
END


 

b.数据层进行数据查询

 

DAL层:

      

 #region (有参数查询)按页查询,根据每页显示记录数/// <summary>/// 按页查询,根据每页显示记录数/// </summary>/// <paramname="startIndex">该页开始记录数</param>/// <paramname="endIndex">该页结束记录数</param>/// <returns></returns>public DataTable SelectByPage(intstartIndex, int endIndex){DataTable dt = new DataTable();string cmdText ="news_selectByPage";SqlParameter[] paras = newSqlParameter[]{new SqlParameter("@startIndex",startIndex ),new SqlParameter("@endIndex",endIndex )};dt =sqlhelper.ExecuteQuery(cmdText, paras, CommandType.StoredProcedure);return dt;}SQLHlper#region 该方法执行传入的带参数的SQL查询语句或存储过程/// <summary>/// 该方法执行传入的带参数的SQL查询语句或存储过程/// </summary>/// <paramname="cmdText">带参数的SQL查询语句或存储过程</param>/// <paramname="paras">参数集合</param>/// <paramname="ct">命令类型</param>///<returns>查询数据表</returns>public DataTable ExecuteQuery(stringcmdText, SqlParameter[] paras, CommandType ct){dt = new DataTable();cmd = new SqlCommand(cmdText,GetConn());cmd.CommandType = ct;cmd.Parameters.AddRange(paras);//比try catch 更好关闭数据源的处理using (sdr =cmd.ExecuteReader(CommandBehavior.CloseConnection)){dt.Load(sdr);}//sdr.Close();//conn.Close(}return dt;}#endregion

 

c.前台代码调用

 

using System;
usingSystem.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
usingSystem.Web.UI.WebControls;
using BLL;
using System.Data;namespace Web
{public partial class test :System.Web.UI.Page{protected void Page_Load(object sender,EventArgs e){if (!Page.IsPostBack){//查询总新闻条数DataTable dt = newNewsManage().SelectAll();int titleCount = dt.Rows.Count;anp.RecordCount = titleCount;//进行显示BindNews();}else{BindNews();}}//分页控件显示该页记录数protected voidAspNetPager1_PageChanged(object sender, EventArgs e){//通过换页显示记录BindNews();Response.Write("开始记录数:"+anp.StartRecordIndex+"<br>结束记录数"+anp.EndRecordIndex);}//通过分页显示记录private void BindNews(){//定义该页开始记录数int start = anp.StartRecordIndex;//定义该页结束记录数int end = anp.EndRecordIndex;//绑定新闻列表DataTable dt = newNewsManage().SelectByPage(start, end);GridView1.DataSource = dt;GridView1.DataBind();}}
}


 

 

 

效果

    仅仅是向大家展示我们具体的一个实现过程,所以页面样式这块我们没有进行设置,关于数据库的信息也是我临时输入的,仅仅是为了做实验用,关于AspNetPager控件的样式也有很多,大家可以自己设置。下面就是我们实现的效果图。




 

 

总结

    到这里呢,利用我们的AspNetPager控件就实现了我们的真分页的功能,它可以大大提高我们的网站或系统的处理效率。关于AspNetPager控件是我们牛腩视频里讲到的,不过它里面并没有具体实现,只是提了下这个控件的好处。我们在平常学习中就是要发扬这种行动下移的风格,它提到了,我们就要实现,要跟自己较真。



这篇关于行动下移篇之——aspnetpager分页控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/347106

相关文章

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

Mybatis的分页实现方式

《Mybatis的分页实现方式》MyBatis的分页实现方式主要有以下几种,每种方式适用于不同的场景,且在性能、灵活性和代码侵入性上有所差异,对Mybatis的分页实现方式感兴趣的朋友一起看看吧... 目录​1. 原生 SQL 分页(物理分页)​​2. RowBounds 分页(逻辑分页)​​3. Page

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

WinForms中主要控件的详细使用教程

《WinForms中主要控件的详细使用教程》WinForms(WindowsForms)是Microsoft提供的用于构建Windows桌面应用程序的框架,它提供了丰富的控件集合,可以满足各种UI设计... 目录一、基础控件1. Button (按钮)2. Label (标签)3. TextBox (文本框

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

Qt中QGroupBox控件的实现

《Qt中QGroupBox控件的实现》QGroupBox是Qt框架中一个非常有用的控件,它主要用于组织和管理一组相关的控件,本文主要介绍了Qt中QGroupBox控件的实现,具有一定的参考价值,感兴趣... 目录引言一、基本属性二、常用方法2.1 构造函数 2.2 设置标题2.3 设置复选框模式2.4 是否

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

mybatis-plus分页无效问题解决

《mybatis-plus分页无效问题解决》本文主要介绍了mybatis-plus分页无效问题解决,原因是配置分页插件的版本问题,旧版本和新版本的MyBatis-Plus需要不同的分页配置,感兴趣的可... 昨天在做一www.chinasem.cn个新项目使用myBATis-plus分页一直失败,后来经过多方

一文教你使用Python实现本地分页

《一文教你使用Python实现本地分页》这篇文章主要为大家详细介绍了Python如何实现本地分页的算法,主要针对二级数据结构,文中的示例代码简洁易懂,有需要的小伙伴可以了解下... 在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放