分页解决方案 之 QuickPager的使用方法(PostBack分页、自定义获取数据)
时间:2022-04-28
本文章向大家介绍分页解决方案 之 QuickPager的使用方法(PostBack分页、自定义获取数据),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
适用范围:网站后台管理、OA、CRM、CMS等,从关系型数据库里提取数据,或者XML等获取数据,不愿意使用Pager_SQL、DataAccessLibrary的情况。
优点:可以使用自己喜欢的方式获取数据,不仅仅限于关系型数据库,其他的也都可以。
缺点,要写的代码比较多。
Demo下载:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html
使用方法:
using JYK.Data;
using JYK.Controls;
using JYK.Controls.Pager;
namespace JYK.Manage.Help.QuickPager
{
/**//// <summary>
/// PostBack分页方式、自动提取数据的使用方法
/// </summary>
public partial class PostBack02 : System.Web.UI.Page
{
//如果您不使用Pager_SQL和DataAccessLibrary的话,那么就不用下面两行代码了。
QuickPagerSQL pagerSQL = new QuickPagerSQL();
//数据访问函数库的实例
DataAccessLibrary dal = DALFactory.CreateDAL();
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
//设置显示数据的控件
Pager1.ShowDataControl = this.GV;
//设置成自定义的方式获取
Pager1.GetDataKind = PagerRunKind.Customer;
pagerSQL.Page = this;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//设置QuickPager_SQL的属性
GetPagerSQL();
//设置分页方式
pagerSQL.SetPagerSQLKind = PagerSQLKind.MaxMin;
//设置总记录数、总页数
SetRecprdCount();
//获取第一页的记录
string sql = pagerSQL.GetSQLByPageIndex(1);
//数据访问函数库的实例
GV.DataSource = dal.ExecuteFillDataTable(sql);
GV.DataBind();
}
}
设置QuickPager_SQL的属性#region 设置QuickPager_SQL的属性
private void GetPagerSQL()
{
//设置QuickPager_SQL的属性
pagerSQL.Page = this;
pagerSQL.TableName = "News_NewsInfo"; //表名或者视图名称
pagerSQL.TableShowColumns = "*"; //需要显示的字段
pagerSQL.TableIDColumn = "NewsID"; //主键名称,不支持复合主键
pagerSQL.TableOrderByColumns = "NewsID"; //排序字段,根据分页算法而定,可以支持多个排序字段
pagerSQL.TableQuery = ""; //查询条件
pagerSQL.PageSize = 4; //一页显示的记录数
}
#endregion
设置总记录数、总页数#region 设置总记录数、总页数
private void SetRecprdCount()
{
pagerSQL.CreateSQL();
//获取总记录数,可以用count(*)统计,也可以使用其他方法获得。
string AllCount = dal.ExecuteString(pagerSQL.GetRecordCountSQL);
if (AllCount != null)
{
pagerSQL.RecordCount = int.Parse(AllCount);
}
pagerSQL.ComputePageCount();
Pager1.RecordCount = pagerSQL.RecordCount;
Pager1.PageCount = pagerSQL.PageCount;
}
#endregion
在拼接SQL和提取数据、自动绑定控件之前触发,#region 在拼接SQL和提取数据、自动绑定控件之前触发,
protected void Pager1_PageChanged(object sender, JYK.Controls.Pager.PageArgs e)
{
//您可以使用下面提供的方法获得数据,也可以使用其他的方法获得记录。
//e.CurrentPageIndex:想要翻到的页号。
string sql = pagerSQL.GetSQLByPageIndex(e.CurrentPageIndex );
GV.DataSource = dal.ExecuteFillDataTable(sql);
GV.DataBind();
Response.Write("绑定前<BR>");
}
#endregion
在自动绑定控件之后触发,#region 在自动绑定控件之后触发,
protected void Pager1_GridBinded(object sender, JYK.Controls.Pager.PageArgs e)
{
//在自动绑定控件之后触发
//计算时间
Response.Write("绑定后,使用的SQL语句:");
}
#endregion
处理查询数据的情况#region 处理查询数据的情况
protected void Btn_Search_Click(object sender, EventArgs e)
{
//获取查询条件
string query = "";
string tmp = "";
tmp = this.Txt_Title.TextTrimNone;
if (tmp.Length > 0)
{
if (query.Length == 0)
query = " title like '%" + tmp + "%'";
else
query += " and title like '%" + tmp + "%'";
}
//还可以添加其他的查询条件,这里省略
//给QuickPager_SQL 设置查询条件
this.pagerSQL.TableQuery = query;
//重新拼接SQL语句
this.pagerSQL.CreateSQL();
//绑定控件,显示第一页的数据
string sql = pagerSQL.GetSQLByPageIndex(1);
GV.DataSource = dal.ExecuteFillDataTable(sql);
GV.DataBind();
//设置总记录数、总页数
SetRecprdCount();
//修改分页控件的UI。
Pager1.PageIndex = 1;
Pager1.SetPagerUI();
}
#endregion
}
}
- Java多线程详解2
- Java多线程详解3
- SpringMVC处理multipart请求.
- 一条简单的sql语句运行15天的原因分析(r5笔记第17天)
- 巧用flashback database实现灵活的数据回滚(r5笔记第16天)
- Spring Cache For Redis.
- css重写checkbox样式
- 通过shell脚本同时监控多个数据库负载(r5笔记第14天)
- Java 定时器 Timer 的使用.
- 通过shell脚本来统计段大小(r5笔记第14天)
- Linux下配置MySQL主从复制(r5笔记第13天)
- Final 关键字
- ArrayList 和 LinkedList的执行效率比较
- 关于consistent gets(r5笔记第12天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS7下系统分析与排障利器sysdig简单介绍
- Faker 一个生成虚拟数据的Python模块
- ICLR 2020 Mogrifier LSTM 解析
- 优秀的程序员是如何利用工具来提升工作效率的?
- webpack实战——一切皆模块
- IntelljJ最新激活教程,有效期到 2089 年!
- 【从0到1学算法】二分查找法
- Spring事务源码分析专题(二)Mybatis的使用及跟Spring整合原理分析
- IIC
- JVM系列之:Contend注解和false-sharing
- FFmpeg 实现视频 封装 与 解封装
- 万物皆可状态机
- ggplot2折线图展示美国和印度COVID-19单日新增确诊人数变化趋势
- JBrowse安装配置的一些教程
- 对不起,网上找的Redis分布式锁都有漏洞!