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实现分页的更多相关文章

  1. C# DataGridView自定义分页控件

    好些日子不仔细写C#代码了,现在主要是Java项目,C#.Net相关项目不多了,有点手生了,以下代码不足之处望各位提出建议和批评. 近日闲来无事想研究一下自定义控件,虽然之前也看过,那也仅限于皮毛,粗 ...

  2. winfrom dataGridView 自定义分页实现

    Winfrom 基本处于忘光的阶段.先需要做个winfrom 的软件.然后自己扩展了DataGridView带分页的控件.废话不多说 上图先   现在一步步实现其效果. 1.添加用户控件 上图即可知道 ...

  3. winform中DataGridView实现分页功能

    WinForm轻松实现自定义分页 (转载) WinForm轻松实现自定义分页 (转载)   转载至http://xuzhihong1987.blog.163.com/blog/static/26731 ...

  4. c#在winform中用DataGridView实现分页效果

    public partial class Form11 : Form { public Form11() { InitializeComponent(); } private int Inum = 1 ...

  5. datagridview控件去除页码

    开启datagridview的分页功能,默认页码是是显示的 为了不让页码显示,可以在绑定数据的是将其隐藏掉 gvLogName.BottomPagerRow.Visible = false; gvLo ...

  6. WinForm查询大数据界面假死,使用异步调用解决

    用DataGridView无分页绑定一个几千条数据的查询,查询的时候界面直接卡死十几秒,用户体验非常不好,因此用异步操作解决界面卡死的问题原本场景:点击[查询]后,界面直接卡死优化场景:点击[查询]后 ...

  7. WinForm DataGridView分页功能

    WinForm 里面的DataGridView不像WebForm里面的GridView那样有自带的分页功能,需要自己写代码来实现分页,效果如下图: 分页控件  .CS: 1 using System; ...

  8. 打印datagridview内容 实现横向纵向分页(转)

    网上找了很多打印的,只发现这个比较好,实现了横向纵向分页. 代码如下: using System;using System.Collections.Generic;using System.Text; ...

  9. winform里dataGridView分页代码,access数据库

    winform里dataGridView分页,默认dataGridView是不分页的和webform里不一样,webform中GridView自带自带了分页. 现在c/s的程序很多时候也需要webfo ...

随机推荐

  1. 【剑指Offer学习】【全部面试题汇总】

    剑指Offer学习 剑指Offer这本书已经学习完了.从中也学习到了不少的东西,如今做一个总的文件夹.供自已和大家一起參考.学如逆水行舟.不进则退.仅仅有不断地学习才干跟上时候.跟得上技术的潮流! 全 ...

  2. 【JSP】Cookie的使用及保存中文,并用Cookie实现购物车功能

    Cookie是服务器存放在客户端的一些数据,比如密码,以及你曾经访问过的一些数据. 设置Cookie //设置cookie Cookie cookie = new Cookie("TOM&q ...

  3. [MODx] 4. getResources

    1. Create a chunk call 'white_content' for white content: <!-- Highlights --> <div class=&q ...

  4. 一个.Net程序员:既然选择了编程,只管风雨兼程(转)

    一个.Net程序员:既然选择了编程,只管风雨兼程 一次会议记录是不会有人感兴趣的,做标题党也是不道德的.所以,走了个折衷的路线,标题不叫会议记录, 内容不纯总结,技术加吐槽,经验加总结. 对于一个程序 ...

  5. iOS给背景添加点击事件

    当点击背景的时候出发事件,或者跳转界面或者产生其他的响应 -(void)viewDidLoad { UIImageView * imageView  = [UIImageView alloc]init ...

  6. android开发之路03

    一.Activity1.如何在一个应用程序中定义多个Activity:①定义一个类,继承Activity:②在该类当中,复写Activity当中的onCreate方法:③在AndroidManifes ...

  7. tcpdf MultiCell line break

    在程序中,我遇到MultiCell中显示三个字符串,开始时 $pdf->MultiCell(63.5, 30, $name."\n".$address."\n&qu ...

  8. Navicate DataModel 注册码

    注册信息: 姓    名:ttrar.com 组    织:(空) 序列号:NAVD-6CLM-6BKA-5TXK 内容来自: 可视化数据库设计工具(Navicat Data Modeler)1.0. ...

  9. [转]深入理解jQuery插件开发

    如果你看到这篇文章,我确信你毫无疑问会认为jQuery是一个使用简便的库.jQuery可能使用起来很简单,但是它仍然有一些奇怪的地方,对它基本功能和概念不熟悉的人可能会难以掌握.但是不用担心,我下面已 ...

  10. java多线程总结六:经典生产者消费者问题实现

    这是个线程同步的经典例子,源代码如下: <span style="font-size:16px;">package demo.thread; /** *经典生产者与消费 ...