winform 分页

说明:(1)如果对分页的感兴趣的话,可以看一下我传的存储过程(“SQL 存储过程 分页”)  

            (2)分页,第一页、上一页,下一页、最后一页只调用点击(click)事件即可;如果想要实用性的好的话,txtNowPage,需              要调用3个事件,点击事件(click)、离开事件(leave)、目标按下事件(keypress)。

效果图:

代码实现如下:

public void DataBind()

{

#region 数据绑定

GetWhere();

object[] page = new object[8];

page[0] = "表或视图";

page[1] = " 字段名称 ";

page[2] = pagesize;//没有多少条记录

page[3] = nowpage;//当前页码

page[4] = strWhere;//查询条件

page[5] = "表的主键";

page[6] = sumpage;//总页数

page[7] = sizecount;//总条数

DataSet dset = new DataSet();

dset = DataAccess.GetDataSet("P_Public_Paging", true, page);

dgvMainTop.DataSource = dset.Tables[0];

sumpage = Convert.ToInt32(dset.Tables[1].Rows[0][0].ToString());

sizecount = Convert.ToInt32(dset.Tables[1].Rows[0][1].ToString());

lblSumCount.Text = "(共" + sizecount + "条记录)";

txtNowPage.Text = nowpage + "/" + sumpage;

PageState();           //分页状态

}

private void PageState()

{

#region  分页按钮状态

if (sumpage <= 1)

{

btnUp.Enabled = false;

btnNext.Enabled = false;

btnFirst.Enabled = false;

btnEnd.Enabled = false;

}

else

{

if (nowpage == 1)

{

btnFirst.Enabled = false;

btnEnd.Enabled = true;

btnUp.Enabled = false;

btnNext.Enabled = true;

}

else if (nowpage == sumpage)

{

btnUp.Enabled = true;

btnNext.Enabled = false;

btnFirst.Enabled = true;

btnEnd.Enabled = false;

}

else

{

btnUp.Enabled = true;

btnNext.Enabled = true;

btnFirst.Enabled = true;

btnEnd.Enabled = true;

}

}

#endregion

}

private void btnFirst_Click(object sender, EventArgs e)

{

#region  第一页按钮事件

DataBind();

#endregion

}

private void btnUp_Click(object sender, EventArgs e)

{

#region 上一页按钮事件

nowpage--;

DataBind();

#endregion

}

private void btnNext_Click(object sender, EventArgs e)

{

#region 下一页按钮事件

nowpage++;

DataBind();

#endregion

}

private void btnEnd_Click(object sender, EventArgs e)

{

#region  最后一页按钮事件

nowpage = sumpage;

DataBind();

#endregion

}

private void txtNowPage_KeyPress(object sender, KeyPressEventArgs e)

{

#region 页码输入限制,允许输入0-9数字 回退键  回车键

e.Handled = true;

if (e.KeyChar >= ‘0‘ && e.KeyChar <= ‘9‘ || e.KeyChar == 8)

{

e.Handled = false;

}

if (e.KeyChar == 13)

{

btnFind.Focus();

}

#endregion

}

private void txtNowPage_Leave(object sender, EventArgs e)

{

#region 设置当前页 最大为总页数 最小1

if (txtNowPage.Text == string.Empty)

{

nowpage = 1;

txtNowPage.Text = nowpage + "/" + sumpage;

}

string strpage = txtNowPage.Text.Trim();

string[] array = strpage.Split(‘/‘);

txtNowPage.Text = array[0];

int page = int.Parse(array[0]);

if (page <= 1)

{

nowpage = 1;

txtNowPage.Text = nowpage + "/" + sumpage;

}

if (page > sumpage)

{

nowpage = sumpage;

txtNowPage.Text = nowpage + "/" + sumpage;

}

if (page > 1 && page <= sumpage)

{

nowpage = page;

}

DataBind();

#endregion

}

private void txtNowPage_Click(object sender, EventArgs e)

{

#region  单击页码文本框

string strpage = txtNowPage.Text.Trim();

string[] array = strpage.Split(‘/‘);

txtNowPage.Text = array[0];

txtNowPage.Focus();

txtNowPage.SelectAll();

#endregion

}

winform 分页,布布扣,bubuko.com

时间: 2024-10-08 10:17:12

winform 分页的相关文章

在DevExpress程序中使用Winform分页控件直接录入数据并保存

一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数据,这种对于字段比较少,而且内容相对比较简单的情况下,效率是比较高的一种输入方式.本篇随笔主要介绍在DevExpress程序中使用GridView直接录入数据并保存的实现,以及使用Winform分页控件来进行数据直接录入的实现操作. 1.在GridView上展示数据 在GridView上展示数据,只

winform分页控件

五一过的一多半已经过去了,感觉过的真快. 言归正传说说最近一直在用的winform分页控件. 一. 添加新项-用户控件 二.拖控件,这个很简单 三.写代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Win

类似web风格的 Winform 分页控件

背景 最近做一个Winform的小程序,需要用到分页,由于之前一直在用 TonyPagerForWinForm.dll ,但该库没有源代码,网上找的也不全面,索性就准备自己改造一个.在园子里翻了一下,发现路过秋天在多年前写了个分页控件,Winform 通用分页控件实战篇(提供源码下载).站在大神的肩膀上就是快,一会就改好了. 效果图 功能比较齐全,不过样式上,楼主十分喜欢easyUI或ext的列表分页风格.于是换了几个按钮,添加了图标,看看现在的效果. 控件源码在正文最下方. 使用简介 就那么一

[原创]WinForm分页控件制作

先简单说一下思路: 1.做一个分页控件的导航类,即记录总页数.当前页.每页记录数,下一页.上一页.跳转等操作的页数变更. class PageNavigation{/// <summary>/// display item count for per page/// default value is 20/// </summary>private int _iPerItemCount = 20;public int PerItemCount{get { return _iPerIt

DEV Winform分页用户组件

资源部分在QQ群:616945527基于服务端数据分页,你也可以修改成本地分页.调用方法添加用户控件到窗体 public int curPage = 1;public int pageSize = 100; mgncPager1.myPagerEvents += new MgncPager.MyPagerEvents(MyPagerEvents); mgncPager1.exportEvents += new MgncPager.ExportEvents(ExportEvents); publi

C# winform 分页控件 datagridview列宽度自适应

版权归原作者(伍华聪)所有. VS2019 .Net FrameWork 4.7.2 1.修改按钮上文字,调整按钮大小.修改按钮和文本框字体为Microsoft Sans Serif, 9pt”,字体电脑中都有,可以尽量水平和垂直居中. 2.因为没有文档,导出excel总不成功,取消掉了导出按钮. 3.修改分页控件水平居中. 下载 视频 4.datagridview列宽度自适应 using System; using System.Collections.Generic; using Syste

WinForm轻松实现自定义分页 (转载)

转载至http://xuzhihong1987.blog.163.com/blog/static/267315872011315114240140/ 以前都是做web开发,最近接触了下WinForm,发现WinForm分页控件好像都没有,网上搜索了一下,发现有很多网友写的分页控件,分页效果应该都能实现吧,只是其风格都不是很符合我想要的.做web的时候,我习惯了Extjs的Grid分页效果,所以也想在WinForm中做个类似的效果,所以咬咬牙,做个山寨版本的吧,虽然自己写费时费力,在项目进度考虑中

简单说下 Winform 的分页快速开发框架必须要实现的几个功能之一

分页非为前端分页  和 后端分页,前端分页只有适用于B/S,B/S的呈现速度远远不如C/S,而C/S则没有这个问题,所以分页必然是后端分页 这里先要说明WinForm分页和Web分页都会存在一个问题:查两次(一次取得页面总数,一次取得当前页数据) 所以分页是需要数据特别大的时候才具有优化的意义,比如查询100条数据是1ms 查询1000条数据是1.1s如果使用分页,那么查询的耗时基本上就是2ms(算上嵌套查询的话是3ms),so自行掂量 控件网上有很多不多说了 说下sql(EF的略过) ----

Winform开发框架中的综合案例Demo

在实际的系统开发中,我们往往需要一些简单的的案例代码,基于此目的我把Winform开发框架中各种闪光点和不错的功能,有些是我们对功能模块的简单封装,而有些则是引入了一些应用广泛的开源组件进行集成使用,因此把它们做了一个Demo进行展示,以方便我们随时了解和参考,并能够快速应用相应的场景到具体的项目中. 1.闪屏展示界面及主体界面 在很多系统里面,提供一个设计不错的图片作为程序界面展示的效果是挺不错的,这个小程序也不例外,基本上整合了一些WInform界面常用的各种功能. 而整个案例的界面的界面以