DataGridView实现分页
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 System.Collections; namespace XjxMobilenursing
{
public partial class PagerCtrl : UserControl
{
public PagerCtrl()
{
InitializeComponent();
}
[Browsable(true)]
[Category("页面记录数")]
[Description("显示页面记录数")]
[DefaultValue(typeof(int), "")]
public int PageSize{ get;set; }
public Hashtable condition { get; set; }//查询条件
private int totalCount = ;//总记录数
public int TotalCount
{
get { return totalCount; }
set
{
totalCount = value;
if (totalCount <= ) totalCount = ;
if (totalCount <= PageSize)
{
lkbNextPage.Enabled = false;
}
else
{
lkbNextPage.Enabled = true;
}
lkbPrePage.Enabled = false;
lblPageSize.Text = PageSize.ToString();
lblTotalCount.Text = totalCount.ToString();
lblPageNum.Text = PageNum.ToString();
}
}
public int BeginPage//起始记录
{
get
{
return (currentPage - ) * PageSize + ;
}
}
public int EndPage { //结束记录
get {
if ((CurrentPage < PageNum) || TotalCount % PageSize == )
{
return BeginPage + PageSize - ;
}
return BeginPage + (TotalCount % PageSize) - ;
}
} private int currentPage = ;//当前第几页
public int CurrentPage
{
get { return currentPage; }
set
{
currentPage = value;
lblCurrentPage.Text = currentPage.ToString();
}
} public int PageNum
{
get
{
int pageNum = ;//总的页数
if (PageSize > )
{
pageNum = (totalCount % PageSize == ) ? (totalCount / PageSize) : (totalCount / PageSize) + ;
}
return pageNum;
}
}
public delegate void LoadDataSouceDelegate(Hashtable condition);
public event LoadDataSouceDelegate LoadDataSouce;
private void lkbFirstPage_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{//首页
CurrentPage = ;
LoadDataSouce(condition);
lkbPrePage.Enabled = false;
if (TotalCount > PageSize)
{
lkbNextPage.Enabled = true;
}
} private void lkbPrePage_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{//上一页
CurrentPage--;
LoadDataSouce(condition);
lkbNextPage.Enabled = true;
if (CurrentPage <= )
{
CurrentPage = ;
lkbPrePage.Enabled = false;
}
else
{
lkbPrePage.Enabled = true;
}
} private void lkbNextPage_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{//下一页
CurrentPage++;
LoadDataSouce(condition);
lkbPrePage.Enabled = true;
if (CurrentPage < PageNum)
{
lkbNextPage.Enabled = true;
}
else
{
CurrentPage = PageNum;
lkbNextPage.Enabled = false;
}
} private void lkbLastPage_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{//尾页
CurrentPage = PageNum;
LoadDataSouce(condition);
lkbNextPage.Enabled = false;
if (TotalCount > PageSize)
{
lkbPrePage.Enabled = true;
}
} private void btnGo_Click(object sender, EventArgs e)
{//跳转
if (!StringCommon.IsNumeric(txtWherePage.Text.Trim()))
{
MessageBox.Show("请输入数字");
return;
}
int goWherePage = StringCommon.ToInt32Value(txtWherePage.Text.Trim(),);
if (goWherePage <= || goWherePage > PageNum)
{
MessageBox.Show(string.Format("请输入1~{0}之间的数",PageNum));
return;
}
CurrentPage = goWherePage;
LoadDataSouce(condition);
if (CurrentPage <= )
{
lkbPrePage.Enabled = false;
}
else
{
lkbPrePage.Enabled = true;
}
if (CurrentPage < PageNum)
{
lkbNextPage.Enabled = true;
}
else
{
lkbNextPage.Enabled = false;
}
}
}
}
DataGridView实现分页的更多相关文章
- C# DataGridView自定义分页控件
好些日子不仔细写C#代码了,现在主要是Java项目,C#.Net相关项目不多了,有点手生了,以下代码不足之处望各位提出建议和批评. 近日闲来无事想研究一下自定义控件,虽然之前也看过,那也仅限于皮毛,粗 ...
- winfrom dataGridView 自定义分页实现
Winfrom 基本处于忘光的阶段.先需要做个winfrom 的软件.然后自己扩展了DataGridView带分页的控件.废话不多说 上图先 现在一步步实现其效果. 1.添加用户控件 上图即可知道 ...
- winform中DataGridView实现分页功能
WinForm轻松实现自定义分页 (转载) WinForm轻松实现自定义分页 (转载) 转载至http://xuzhihong1987.blog.163.com/blog/static/26731 ...
- c#在winform中用DataGridView实现分页效果
public partial class Form11 : Form { public Form11() { InitializeComponent(); } private int Inum = 1 ...
- datagridview控件去除页码
开启datagridview的分页功能,默认页码是是显示的 为了不让页码显示,可以在绑定数据的是将其隐藏掉 gvLogName.BottomPagerRow.Visible = false; gvLo ...
- WinForm查询大数据界面假死,使用异步调用解决
用DataGridView无分页绑定一个几千条数据的查询,查询的时候界面直接卡死十几秒,用户体验非常不好,因此用异步操作解决界面卡死的问题原本场景:点击[查询]后,界面直接卡死优化场景:点击[查询]后 ...
- WinForm DataGridView分页功能
WinForm 里面的DataGridView不像WebForm里面的GridView那样有自带的分页功能,需要自己写代码来实现分页,效果如下图: 分页控件 .CS: 1 using System; ...
- 打印datagridview内容 实现横向纵向分页(转)
网上找了很多打印的,只发现这个比较好,实现了横向纵向分页. 代码如下: using System;using System.Collections.Generic;using System.Text; ...
- winform里dataGridView分页代码,access数据库
winform里dataGridView分页,默认dataGridView是不分页的和webform里不一样,webform中GridView自带自带了分页. 现在c/s的程序很多时候也需要webfo ...
随机推荐
- httpclient模拟浏览器訪问站点
HttpClient 是 Apache Jakarta Common 下的子项目.能够用来提供高效的.最新的.功能丰富的支持 HTTP 协议的client编程工具包.而且它支持 HTTP 协议最新的版 ...
- 学习笔记之Shell & QSHELL
shell(计算机壳层)_百度百科 http://baike.baidu.com/subview/849/15831672.htm Shell (computing) - Wikipedia, the ...
- 句柄(Handle)
1.句柄是什么? 在windows中,句柄是和对象一一对应的32位无符号整数值.对象可以映射到唯一的句柄,句柄也可以映射到唯一的对象.2.为什么我们需要句柄? 更准确地说,是window ...
- 文件和目录之umask函数
本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. umask函数为进程设置文件模式创建屏蔽字,并 ...
- debian配置简单的vsftp服务器
Ubuntu Linux与Windows系统不同,Ubuntu Linux不会产生无用垃圾文件,但是在升级缓存中,Ubuntu Linux不会自动删除这些文件,今天就来说说这些垃圾文件清理方法. 1 ...
- 取得root权限后怎么删除程序
不知道这个算什么教程,随便一个分类吧,管理员不要扣我分啊,我也是为大家服务嘛,不对的话可以帮我处理下) 最近也学习了下,把我的X8(国行2.1版)给root了,怎么root,论坛里有很多帖子,这里就不 ...
- mysql中不同事务隔离级别下数据的显示效果--转载
事务是一组原子性的SQL查询语句,也可以被看做一个工作单元.如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查询语句因为崩溃或其他原因而无法执行,那么所有的语句就都 ...
- Using zend-paginator in your Album Module
Using zend-paginator in your Album Module TODO Update to: follow the changes in the user-guide use S ...
- python--判断数据类型可不可变
内存是一块空间,可以比喻成一个比较大的房子,定义一个变量就是在大房子中建立一个小房子,判断一个数据类型可不可变,就是看在这个这个大房子中有没有新建小房子,可以通过id来判断,如果id没有变化则是不可变 ...
- About gpref O(n2) --> O(1)
http://www.ibm.com/developerworks/cn/linux/l-gperf.html 命令行处理和 gperf 的作用 命令行处理一直以来都是软件开发中最容易被忽视的领域.几 ...