Winform 分页
1.图列展示
2.分页控件代码
Paging.Designer.cs
partial class Paging
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null; /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
} #region 组件设计器生成的代码 /// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Paging));
this.bindingNavigator = new System.Windows.Forms.BindingNavigator(this.components);
this.btnFirst = new System.Windows.Forms.ToolStripButton();
this.btnPrev = new System.Windows.Forms.ToolStripButton();
this.btnNext = new System.Windows.Forms.ToolStripButton();
this.btnLast = new System.Windows.Forms.ToolStripButton();
this.toolStripLabel6 = new System.Windows.Forms.ToolStripLabel();
this.toolStripLabel4 = new System.Windows.Forms.ToolStripLabel();
this.txtCurrentPage = new System.Windows.Forms.ToolStripTextBox();
this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();
this.btnGo = new System.Windows.Forms.ToolStripButton();
this.toolStripLabel5 = new System.Windows.Forms.ToolStripLabel();
this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel();
this.lblPageCount = new System.Windows.Forms.ToolStripLabel();
this.toolStripLabel3 = new System.Windows.Forms.ToolStripLabel();
this.lblMaxPage = new System.Windows.Forms.ToolStripLabel();
((System.ComponentModel.ISupportInitialize)(this.bindingNavigator)).BeginInit();
this.bindingNavigator.SuspendLayout();
this.SuspendLayout();
//
// bindingNavigator
//
this.bindingNavigator.AddNewItem = null;
this.bindingNavigator.CountItem = null;
this.bindingNavigator.DeleteItem = null;
this.bindingNavigator.Dock = System.Windows.Forms.DockStyle.Bottom;
this.bindingNavigator.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.btnFirst,
this.btnPrev,
this.btnNext,
this.btnLast,
this.toolStripLabel6,
this.toolStripLabel4,
this.txtCurrentPage,
this.toolStripLabel1,
this.btnGo,
this.toolStripLabel5,
this.toolStripLabel2,
this.lblPageCount,
this.toolStripLabel3,
this.lblMaxPage});
this.bindingNavigator.Location = new System.Drawing.Point(, );
this.bindingNavigator.MoveFirstItem = null;
this.bindingNavigator.MoveLastItem = null;
this.bindingNavigator.MoveNextItem = null;
this.bindingNavigator.MovePreviousItem = null;
this.bindingNavigator.Name = "bindingNavigator";
this.bindingNavigator.PositionItem = null;
this.bindingNavigator.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
this.bindingNavigator.Size = new System.Drawing.Size(, );
this.bindingNavigator.TabIndex = ;
this.bindingNavigator.Text = "bindingNavigator1";
//
// btnFirst
//
this.btnFirst.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.btnFirst.Image = ((System.Drawing.Image)(resources.GetObject("btnFirst.Image")));
this.btnFirst.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btnFirst.Name = "btnFirst";
this.btnFirst.Size = new System.Drawing.Size(, );
this.btnFirst.Text = "首页";
this.btnFirst.Click += new System.EventHandler(this.btnFirst_Click);
//
// btnPrev
//
this.btnPrev.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.btnPrev.Image = ((System.Drawing.Image)(resources.GetObject("btnPrev.Image")));
this.btnPrev.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btnPrev.Name = "btnPrev";
this.btnPrev.Size = new System.Drawing.Size(, );
this.btnPrev.Text = "上页";
this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click);
//
// btnNext
//
this.btnNext.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.btnNext.Image = ((System.Drawing.Image)(resources.GetObject("btnNext.Image")));
this.btnNext.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btnNext.Name = "btnNext";
this.btnNext.Size = new System.Drawing.Size(, );
this.btnNext.Text = "下页";
this.btnNext.Click += new System.EventHandler(this.btnNext_Click);
//
// btnLast
//
this.btnLast.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.btnLast.Image = ((System.Drawing.Image)(resources.GetObject("btnLast.Image")));
this.btnLast.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btnLast.Name = "btnLast";
this.btnLast.Size = new System.Drawing.Size(, );
this.btnLast.Text = "未页";
this.btnLast.Click += new System.EventHandler(this.btnLast_Click);
//
// toolStripLabel6
//
this.toolStripLabel6.Name = "toolStripLabel6";
this.toolStripLabel6.Size = new System.Drawing.Size(, );
this.toolStripLabel6.Text = " ";
//
// toolStripLabel4
//
this.toolStripLabel4.Name = "toolStripLabel4";
this.toolStripLabel4.Size = new System.Drawing.Size(, );
this.toolStripLabel4.Text = "第";
//
// txtCurrentPage
//
this.txtCurrentPage.Name = "txtCurrentPage";
this.txtCurrentPage.Size = new System.Drawing.Size(, );
//
// toolStripLabel1
//
this.toolStripLabel1.Name = "toolStripLabel1";
this.toolStripLabel1.Size = new System.Drawing.Size(, );
this.toolStripLabel1.Text = "页";
//
// btnGo
//
this.btnGo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.btnGo.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold);
this.btnGo.Image = ((System.Drawing.Image)(resources.GetObject("btnGo.Image")));
this.btnGo.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btnGo.Name = "btnGo";
this.btnGo.Size = new System.Drawing.Size(, );
this.btnGo.Text = "GO";
this.btnGo.Click += new System.EventHandler(this.btnGo_Click);
//
// toolStripLabel5
//
this.toolStripLabel5.Name = "toolStripLabel5";
this.toolStripLabel5.Size = new System.Drawing.Size(, );
this.toolStripLabel5.Text = " ";
//
// toolStripLabel2
//
this.toolStripLabel2.Name = "toolStripLabel2";
this.toolStripLabel2.Size = new System.Drawing.Size(, );
this.toolStripLabel2.Text = "共";
//
// lblPageCount
//
this.lblPageCount.Name = "lblPageCount";
this.lblPageCount.Size = new System.Drawing.Size(, );
this.lblPageCount.Text = "lblPageCount";
//
// toolStripLabel3
//
this.toolStripLabel3.Name = "toolStripLabel3";
this.toolStripLabel3.Size = new System.Drawing.Size(, );
this.toolStripLabel3.Text = "页";
//
// lblMaxPage
//
this.lblMaxPage.Name = "lblMaxPage";
this.lblMaxPage.Size = new System.Drawing.Size(, );
this.lblMaxPage.Text = "lblMaxPage";
//
// Paging
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.bindingNavigator);
this.Name = "Paging";
this.Size = new System.Drawing.Size(, );
((System.ComponentModel.ISupportInitialize)(this.bindingNavigator)).EndInit();
this.bindingNavigator.ResumeLayout(false);
this.bindingNavigator.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout(); } #endregion public System.Windows.Forms.BindingNavigator bindingNavigator;
private System.Windows.Forms.ToolStripButton btnFirst;
private System.Windows.Forms.ToolStripButton btnPrev;
private System.Windows.Forms.ToolStripButton btnNext;
private System.Windows.Forms.ToolStripButton btnLast;
private System.Windows.Forms.ToolStripLabel toolStripLabel6;
private System.Windows.Forms.ToolStripLabel toolStripLabel4;
private System.Windows.Forms.ToolStripTextBox txtCurrentPage;
private System.Windows.Forms.ToolStripLabel toolStripLabel1;
private System.Windows.Forms.ToolStripButton btnGo;
private System.Windows.Forms.ToolStripLabel toolStripLabel5;
private System.Windows.Forms.ToolStripLabel toolStripLabel2;
private System.Windows.Forms.ToolStripLabel lblPageCount;
private System.Windows.Forms.ToolStripLabel toolStripLabel3;
private System.Windows.Forms.ToolStripLabel lblMaxPage;
}
Paging.cs
/// <summary>
/// 申明委托
/// </summary>
/// <param name="e"></param>
/// <returns></returns>
public delegate int EventPagingHandler(EventPagingArg e);
public partial class Paging : UserControl
{
public Paging()
{
InitializeComponent();
}
public event EventPagingHandler EventPaging;
/// <summary>
/// 每页显示记录数
/// </summary>
private int _pageSize = ;
/// <summary>
/// 每页显示记录数
/// </summary>
public int PageSize
{
get { return _pageSize; }
set
{
_pageSize = value;
GetPageCount();
}
} private int _nMax = ;
/// <summary>
/// 总记录数
/// </summary>
public int NMax
{
get { return _nMax; }
set
{
_nMax = value;
GetPageCount();
}
} private int _pageCount = ;
/// <summary>
/// 页数=总记录数/每页显示记录数
/// </summary>
public int PageCount
{
get { return _pageCount; }
set { _pageCount = value; }
} private int _pageCurrent = ;
/// <summary>
/// 当前页号
/// </summary>
public int PageCurrent
{
get { return _pageCurrent; }
set { _pageCurrent = value; }
}
private DataTable _dataSource;
/// <summary>
/// 数据源
/// </summary>
public DataTable DataSource
{
get { return _dataSource; }
set
{
_dataSource = value;
}
}
public BindingNavigator ToolBar
{
get { return this.bindingNavigator; }
}
private void GetPageCount()
{
if (this.NMax > )
{
this.PageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(this.NMax) / Convert.ToDouble(this.PageSize)));
}
else
{
this.PageCount = ;
}
}
/// <summary>
/// 翻页控件数据绑定的方法
/// </summary>
public void Bind()
{
if (this.EventPaging != null)
{
this.NMax = this.EventPaging(new EventPagingArg(this.PageCurrent));
} if (this.PageCurrent > this.PageCount)
{
this.PageCurrent = this.PageCount;
}
if (this.PageCount == )
{
this.PageCurrent = ;
}
lblPageCount.Text = this.PageCount.ToString();
this.lblMaxPage.Text = "共" + this.NMax.ToString() + "条记录";
this.txtCurrentPage.Text = this.PageCurrent.ToString(); if (this.PageCurrent == )
{
this.btnPrev.Enabled = false;
this.btnFirst.Enabled = false;
}
else
{
btnPrev.Enabled = true;
btnFirst.Enabled = true;
} if (this.PageCurrent == this.PageCount)
{
this.btnLast.Enabled = false;
this.btnNext.Enabled = false;
}
else
{
btnLast.Enabled = true;
btnNext.Enabled = true;
} if (this.NMax == )
{
btnNext.Enabled = false;
btnLast.Enabled = false;
btnFirst.Enabled = false;
btnPrev.Enabled = false;
}
} private void btnFirst_Click(object sender, EventArgs e)
{
PageCurrent = ;
this.Bind();
} private void btnPrev_Click(object sender, EventArgs e)
{
PageCurrent -= ;
if (PageCurrent <= )
{
PageCurrent = ;
}
this.Bind();
} private void btnNext_Click(object sender, EventArgs e)
{
this.PageCurrent += ;
if (PageCurrent > PageCount)
{
PageCurrent = PageCount;
}
this.Bind();
} private void btnLast_Click(object sender, EventArgs e)
{
PageCurrent = PageCount;
this.Bind();
} private void btnGo_Click(object sender, EventArgs e)
{
if (this.txtCurrentPage.Text != null && txtCurrentPage.Text != "")
{
if (Int32.TryParse(txtCurrentPage.Text, out _pageCurrent))
{
this.Bind();
}
else
{
MessageBox.Show("输入数字格式错误!");
}
}
} private void txtCurrentPage_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
this.Bind();
}
} }
/// <summary>
/// 自定义事件数据基类
/// </summary>
public class EventPagingArg : EventArgs
{
private int _intPageIndex;
public EventPagingArg(int PageIndex)
{
_intPageIndex = PageIndex;
}
}
使用:
PagingHelper
class PagingHelper
{ private int _PageSize = ;
private int _PageIndex = ;
private int _TotalCount = ;
private string _TableName;//表名
private string _QueryFieldName = "*";//表字段FieldStr
private string _OrderStr = string.Empty; //排序_SortStr
private string _QueryCondition = string.Empty;//查询的条件 RowFilter
private string _PrimaryKey = string.Empty;//主键 /// <summary>
/// 显示页数
/// </summary>
public int PageSize
{
get
{
return _PageSize; }
set
{
_PageSize = value;
}
}
/// <summary>
/// 当前页
/// </summary>
public int PageIndex
{
get
{
return _PageIndex;
}
set
{
_PageIndex = value;
}
} /// <summary>
/// 总记录数
/// </summary>
public int TotalCount
{
get
{
return _TotalCount;
}
}
/// <summary>
/// 表名,包括视图
/// </summary>
public string TableName
{
get
{
return _TableName;
}
set
{
_TableName = value;
}
}
/// <summary>
/// 表字段FieldStr
/// </summary>
public string QueryFieldName
{
get
{
return _QueryFieldName;
}
set
{
_QueryFieldName = value;
}
}
/// <summary>
/// 排序字段
/// </summary>
public string OrderStr
{
get
{
return _OrderStr;
}
set
{
_OrderStr = value;
}
}
public DataTable QueryDataTable()
{
//这里调用存储过程实现数据读取
//展示就用本地测试数据
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
_TotalCount = ; int index = PageIndex == ? : PageIndex * PageSize;
for (int i = index; i < index+PageSize; i++)
{
dt.Rows.Add(i, "Name" + i.ToString());
}
dt.AcceptChanges(); return dt;
}
}
测试页面调用:
private void Form1_Load(object sender, EventArgs e)
{
this.paging1.PageCurrent = ;
this.paging1.Bind();
} private int paging1_EventPaging(EventPagingArg e)
{
return Bind(this.paging1.PageCurrent);
}
private int Bind(int pagecurrent)
{
PagingHelper phelper = new PagingHelper();
phelper.PageIndex = pagecurrent;
paging1.PageSize = ;
DataTable dt = phelper.QueryDataTable();
this.dataGridView1.DataSource = dt.DefaultView;
return phelper.TotalCount;
}
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分页控件
设计界面: 控件代码: using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...
- [原创]WinForm分页控件制作
先简单说一下思路: 1.做一个分页控件的导航类,即记录总页数.当前页.每页记录数,下一页.上一页.跳转等操作的页数变更. class PageNavigation{/// <summary> ...
- winform分页管理
注意:其中可能用到部分自定义的扩展方法,在使用中需自己修改一下 /// <summary> /// 分页管理 /// </summary> public class Pagin ...
- winform 分页 分类: WinForm 2014-05-16 15:30 257人阅读 评论(0) 收藏
说明:(1)如果对分页的感兴趣的话,可以看一下我传的存储过程("SQL 存储过程 分页") (2)分页,第一页.上一页,下一页.最后一页只调用点击(cl ...
- 【NET】Winform分页控件初探
public partial class WinFormPager : UserControl { ; /// <summary> /// 当前页 /// </summary> ...
- DEV Winform分页用户组件
资源部分在QQ群:616945527基于服务端数据分页,你也可以修改成本地分页.调用方法添加用户控件到窗体 public int curPage = 1;public int pageSize = 1 ...
随机推荐
- C++单纯的指针传参的问题
C++指针传参也是单纯的复制一份地址,如下代码: #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace st ...
- xcart-子分类/语言不显示
由于数据库的版本不同,表名会区分大小写的情况,这样就导致xcart语言相关的信息显示不出来,此时只需更改根目录下的init.php文件,如下: 改成小写的就OK了.
- vue倒计时:天时分秒
data数据定义 data () { return { curStartTime: '2019-07-31 08:00:00', day: '0', hour: '00', min: '00', se ...
- 解决element 分页组件,搜索过后current-page 绑定的数据变了,但是页面当前页码并没有变的问题
前言上一篇写前台解决分页问题的时候没有这个问题,但是在实际项目后台中有遇到过,所以在这里专门说一下,如果参考前台分页出现这种问题了,也可以使用这种方法!bug:vue和element实现的后台分页,当 ...
- 洛谷 P3120 [USACO15FEB]牛跳房子(金)Cow Hopscotch (Gold)
P3120 [USACO15FEB]牛跳房子(金)Cow Hopscotch (Gold) 就像人类喜欢跳格子游戏一样,FJ的奶牛们发明了一种新的跳格子游戏.虽然这种接近一吨的笨拙的动物玩跳格子游戏几 ...
- SSM项目实现连接两个mysql数据库
最近做项目需要用到另一个数据库的内容,多方查找终于实现了功能. 我们都知道,在SSM框架中,我们在applicationContext.xml配置文件中添加数据源就可以实现数据库增删改查,但是只能连接 ...
- 关于iosselectjs插件设置同步值的操作实践
关于移动端选择器的插件选择百度可以搜到很多,之前用过iosselect.js(https://github.com/zhoushengmufc/iosselect)感觉还不错,比mobiscorll. ...
- STL 最大堆与最小堆
在第一场CCCC选拔赛上,有一关于系统调度的水题.利用优先队列很容易AC. // 由于比赛时花费了不少时间研究如何定义priority_queue的比较函数,决心把STL熟练掌握... Queue 首 ...
- PAT甲级——A1104 Sum of Number Segments
Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For exam ...
- String类的endsWith()方法和startsWith()方法
String 的endsWith() 方法用于测 试字符串是否以指定的后缀结束.如果参数表示的字符序列是此对象表示的字符序列的后缀,则返回 true:否则返回 false.注意,如果参数是空字符串,或 ...