Winform分页控件
设计界面:

控件代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ClientModels; namespace XXPLClient.UI
{
public partial class PagerControl : UserControl
{
#region PageSize
private int _pageSize = ;
/// <summary>
/// 每页数据条数
/// </summary>
public int PageSize
{
get
{
return _pageSize;
}
set
{
if (value == )
{
_pageSize = ;
Pager.rows = ;
}
else
{
_pageSize = value;
Pager.rows = value;
}
}
}
#endregion #region 事件
public event PageChangedHandler PageChanged = null;
public event RefreshDataHandler RefreshData = null;
#endregion #region Pager
private PagerModel _pager = new PagerModel(, );
public PagerModel Pager
{
get
{
return _pager;
}
set
{
_pager = value;
txtCurrentPage.Text = _pager.page.ToString();
lblTotalPage.Text = " / " + _pager.pageCount.ToString();
}
}
#endregion #region PagerControl 构造函数
public PagerControl()
{
InitializeComponent();
}
#endregion #region PagerControl_Load
private void PagerControl_Load(object sender, EventArgs e)
{
tools.BackColor = SystemColors.Control;
}
#endregion private void btnFirst_Click(object sender, EventArgs e)
{
Pager.page = ;
if (PageChanged != null)
{
PageChanged();
}
} private void btnPre_Click(object sender, EventArgs e)
{
Pager.page = Pager.prePage;
if (PageChanged != null)
{
PageChanged();
}
} private void btnNext_Click(object sender, EventArgs e)
{
Pager.page = Pager.nextPage;
if (PageChanged != null)
{
PageChanged();
}
} private void btnLast_Click(object sender, EventArgs e)
{
Pager.page = Pager.pageCount;
if (PageChanged != null)
{
PageChanged();
}
} private void btnRefresh_Click(object sender, EventArgs e)
{
if (RefreshData != null)
{
RefreshData();
}
} private void btnCurrentPage_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
} private void txtCurrentPage_KeyUp(object sender, KeyEventArgs e)
{
if (Convert.ToInt32(txtCurrentPage.Text) < )
{
txtCurrentPage.Text = "";
}
if (Convert.ToInt32(txtCurrentPage.Text) > Pager.pageCount)
{
txtCurrentPage.Text = Pager.pageCount.ToString();
}
Pager.page = Convert.ToInt32(txtCurrentPage.Text);
if (PageChanged != null)
{
PageChanged();
}
}
}
/// <summary>
/// 翻页
/// </summary>
public delegate void PageChangedHandler();
/// <summary>
/// 刷新数据
/// </summary>
public delegate void RefreshDataHandler();
}
PagerModel代码:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace ClientModels
{
/// <summary>
/// 分页
/// </summary>
[Serializable]
public class PagerModel
{
#region 字段
/// <summary>
/// 当前页数
/// </summary>
public int page { get; set; }
/// <summary>
/// 每页记录数
/// </summary>
public int rows { get; set; }
/// <summary>
/// 排序字段
/// </summary>
public string sort { get; set; }
/// <summary>
/// 排序的方式asc,desc
/// </summary>
public string order { get; set; }
/// <summary>
/// 记录
/// </summary>
public object result { get; set; }
/// <summary>
/// 记录数
/// </summary>
public int totalRows { get; set; }
#endregion #region 构造函数
public PagerModel()
{ }
/// <summary>
///
/// </summary>
/// <param name="page">当前页数</param>
/// <param name="rows">每页记录数</param>
public PagerModel(int page, int rows)
{
this.page = page;
this.rows = rows;
}
#endregion #region 扩展字段
/// <summary>
/// 总页数
/// </summary>
public int pageCount
{
get
{
if (rows != )
{
return (totalRows - ) / rows + ;
}
else
{
return ;
}
}
}
/// <summary>
/// 上一页
/// </summary>
public int prePage
{
get
{
if (page - > )
{
return page - ;
}
return ;
}
}
/// <summary>
/// 下一页
/// </summary>
public int nextPage
{
get
{
if (page + < pageCount)
{
return page + ;
}
return pageCount;
}
}
#endregion }
}
如何使用:
PagerModel pager = pagerControl.Pager;
List<BS_Meeting_ext> list;
if (cbxReviewTime.Checked)
{
list = m_MeetingDal.GetList(ref pager, cbxType.SelectedValue.ToString(), txtTerm.Text, txtNum.Text, dtpStart.Value.ToString("yyyy-MM-dd"), dtpEnd.Value.ToString("yyyy-MM-dd"));
}
else
{
list = m_MeetingDal.GetList(ref pager, cbxType.SelectedValue.ToString(), txtTerm.Text, txtNum.Text, null, null);
}
pagerControl.Pager = pager;
使用效果图:

Winform分页控件的更多相关文章
- 在DevExpress程序中使用Winform分页控件直接录入数据并保存
一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...
- winform 分页控件
http://www.cnblogs.com/liuyunsheng/p/4853387.html http://www.cnblogs.com/wuhuacong/archive/2011/07/0 ...
- 开发框架模块视频系列(2)-Winform分页控件介绍
在软件开发过程中,为了节省开发时间,提高开发效率,统一用户处理界面,尽可能使用成熟.功能强大的分页控件,这款Winform环境下的分页控件,集成了数据分页.内容提示.数据打印.数据导出.表头中文转义等 ...
- 类似web风格的 Winform 分页控件
背景 最近做一个Winform的小程序,需要用到分页,由于之前一直在用 TonyPagerForWinForm.dll ,但该库没有源代码,网上找的也不全面,索性就准备自己改造一个.在园子里翻了一下, ...
- [原创]WinForm分页控件制作
先简单说一下思路: 1.做一个分页控件的导航类,即记录总页数.当前页.每页记录数,下一页.上一页.跳转等操作的页数变更. class PageNavigation{/// <summary> ...
- 【NET】Winform分页控件初探
public partial class WinFormPager : UserControl { ; /// <summary> /// 当前页 /// </summary> ...
- 如何Windows分页控件中增加统计功能
在我的博客里面,很多Winform程序里面都用到了分页处理,这样可以不管是在直接访问数据库的场景还是使用网络方式访问WCF服务获取数据,都能获得较好的效率,因此WInform程序里面的分页控件的使用是 ...
- winform基础控件总结
转自:http://www.cnblogs.com/top5/archive/2010/04/29/1724039.html 基础 - 常用控件 C# WinForm开发系列 - CheckBox/B ...
- winform快速开发平台 -> 基础组件之分页控件
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...
随机推荐
- Principles of measurement of sound intensity
Introduction In accordance with the definition of instantaneous sound intensity as the product of th ...
- CentOS 7 安装RabbitMQ 3.3
1.安装erlang 语言环境 安装依赖文件 #yum install ncurses-devel 进入 http://www.erlang.org/download.html 选择源文件下载 wge ...
- Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...
- chunkupload 文件上传断点续传组件(java) - 正式发布
chunkupload简介 chunkupload是一款基于java语言的断点续传组件,针对文件上传,非文件下载,集成方便,使用简单. chunkupload实现如下功能: · 实现断点续传 · ...
- 关于分工的思考 (Thoughts on Division of Labor)
Did you ever have the feeling that adding people doesn't help in software development? Did you ever ...
- 学习Cassandra的开源电子书(中英文版)
学习Cassandra的开源电子书(中英文版)发布啦:http://teddymaef.github.io/learncassandra/ 之前发布了英文版,现在包含中文版了. 学习Cassandra ...
- Aspose.Words 16.8 破解版、添加自定义HTML导出Jpeg压缩质量配置
0x01 Aspose.Words 介绍Aspose.Words是一个商业.NET类库,可以使得应用程序处理大量的文件任务.Aspose.Words支持Doc,Docx,RTF,HTML,OpenDo ...
- Atitit 图像处理 深刻理解梯度原理计算.v1 qc8
Atitit 图像处理 深刻理解梯度原理计算.v1 qc8 1.1. 图像处理 梯度计算 基本梯度 内部梯度 外部梯度 方向梯度1 2. 图像梯度就是图像边缘吗?2 1.1. 图像处理 梯度计算 ...
- C#设计模式系列:命令模式(Command)
1.命令模式简介 1.1>.定义 命令模式的目的是解除命令发出者和接收者之间的紧密耦合关系,使二者相对独立,有利于程序的并行开发和代码的维护.命令模式的核心思想是将请求封装为一个对象,将其作为命 ...
- OpenCASCADE Make Primitives-Sphere
OpenCASCADE Make Primitives-Sphere eryar@163.com Abstract. The sphere is the simplest topology shape ...