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快速开发平台 -> 基础组件之分页控件
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...
随机推荐
- AngularJS SPA Template For Visual Studio
单页面应用程序(SPA)[使用JavaScript.CSS和HTML强大的功能,可以构建一个单页面应用程序(SPAs)],它提供了丰富的用户体验页面.导航技术和AJAX提供必要的功能,而不用重新加载页 ...
- Lesson 9 A cold welcome
Text On Wednesday evening, we went to the Town Hall. It was the last day of the year and a large cro ...
- Python黑帽编程 3.1 ARP欺骗
Python灰帽编程 3.1 ARP欺骗 ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据 ...
- ASP.NET MVC 5 - 给电影表和模型添加新字段
在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entit ...
- Azure PowerShell (4) 使用PowerShell管理多个订阅
<Windows Azure Platform 系列文章目录> 笔者手上有两个Azure账户. - Azure Global (windowsazure.com)账户.有两个订阅. - 世 ...
- 我如何介绍 Microservice
这篇文章转自我的 Github blog 一天我司招财猫姐(HR 大人)问我,你给我解释一下 Microservice 是什么吧.故成此文.一切都是从一个创业公司开始的. 故事 最近的创业潮非常火爆, ...
- 京东招聘Java开发人员
软件开发工程师(JAVA) 岗位职责: 1. 负责京东核心业务系统的需求分析.设计.开发工作 2. 负责相关技术文档编写工作 3. 解决系统中的关键问题和技术难题 任职要求: 1. 踏实诚恳.责任心强 ...
- Java 积累复习用
1.jvm 默认编码:Java的默认编码 2.jvm heap : Java虚拟机的内存组成以及堆内存介绍 3.Java命令学习系列(一)--Jps 4.Java命令学习系列(二)--Jstack 5 ...
- 缓存篇(Cache)~大话开篇
回到占占推荐博客索引 闲话杂淡 想写这篇文章很久了,但总是感觉内功还不太够,总觉得,要写这种编程领域里的心法(内功)的文章,需要有足够的实践,需要对具体领域非常了解,才能写出来.如今,感觉自己有写这种 ...
- js深浅复制
一.数组的深浅拷贝 <body> <script type="text/javascript"> var arr = ["One",&q ...