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快速开发平台 -> 基础组件之分页控件
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...
随机推荐
- ubuntu-14.04.2-desktop使用方法
一.安装VMware Tools 1. 在VMware Workstation11.1.0下安装Ubuntu镜像:ubuntukylin-14.04.2-desktop-amd64.iso 2. 点击 ...
- MVC学习二:基础语法
目录 一:重载方法的调用 二:数据的传递 三:生成控件 四:显示加载视图 五:强类型视图 六:@Response.Write() 和 @Html.Raw()区别 七:视图中字符串的输入 八:模板页 一 ...
- ASP.NET Core中显示自定义错误页面
在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白. 如果在 Startup.cs 的 Configure() 中加上 app. ...
- 【腾讯优测干货分享】Android 相机预览方向及其适配探索
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/583ba1df25d735cd2797004d 由于Android系统的开放策略 ...
- 给公司部门设计的SOA架构
新来老大年前开会说各位同学,公司业务越来越重,未来几年要成倍增长......,要梳理出一套新架构,才能更好的支持N万用户.....,以后升职加薪当上....打败..... 想想还有点小激动呢,于是过年 ...
- .Net程序员面试所需要的一些技术准备
夜已经很深了,但却毫无睡意,最近找工作和面试感触良多,所以想记录下来这段过程. 作为一个.Net程序员,不可否认是比JAVA要难混的.甚至在智联招聘或者大街网都没有.NET程序员的备用选项.真是令人悲 ...
- 2013 duilib入门简明教程 -- 界面布局(9)
上一个教程实现的标题栏代码中,并没有看到处理自适应窗口大小的代码,但是窗口大小变化后,按钮的位置会跟着变化,这是因为我们将按钮放到了HorizontalLayout.VerticalLayou ...
- JS中script词法分析
核心:JS中的script是分段执行的. <script> var i = 10; </script> <script> alert(i); </script ...
- IM消息送达保证机制实现(二):保证离线消息的可靠投递
1.前言 本文的上篇<IM消息送达保证机制实现(一):保证在线实时消息的可靠投递>中,我们讨论了在线实时消息的投递可以通过应用层的确认.发送方的超时重传.接收方的去重等手段来保证业务层面消 ...
- ora-01652无法通过128(在表空间temp中)扩展temp段
今天提交请求后,提示ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段.最后通过ALTER DATABASE TEMPFILE '/*/*/db/apps_st/d ...