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. android判断当前应用程序处于前台还是后台

    /**     *判断当前应用程序处于前台还是后台     *      * @param context * @return         */    public static boolean ...

  2. NET中間語言(IL) 图解

    转载地址是:http://msdn.microsoft.com/zh-tw/library/dd229210.aspx 想查看IL指令,请看中英文对照表: CN-http://www.cnblogs. ...

  3. Vi、Vim及Gedit编辑器

    搜索(注意,不需要输入:号.也可以先输入:号再键入命令) /string……………………向后搜索,从光标处向文件尾搜索,按n键继续搜索下一个 ?string……………………向前搜索 注意:搜索时会将所 ...

  4. Encryption

    Encryption Configuration Basic Usage Encrypting a value Decrypting a value Configuration Before usin ...

  5. 一段JavaScript代码

    eval(function(p, a, c, k, e, d) { e = function(c) { return c.toString(36) }; if (!''.replace(/^/, St ...

  6. nginx 安装部署

    1. 安装passenger:sudo gem install passenger 2. 找到passenger的安装目录,一般是 cd  /var/lib/gems/2.0.0/gems/passe ...

  7. C语言---字符

    1.三元符(三字母词):由三个字符组合起来代表其他字符,三元符可以在没有一些字符时使用 ??( [ ??) ] ??! | ??< { ??> } ??' ^ ??= # ??/ \ ?? ...

  8. [记录]Ubuntu下,使用Shell,简单替换有规律的文件名称

    因工作中需要将Flash转为Html5,并且要有动画效果,我将Flash的组件导出Png序列,然后将Png序列拼接成一张雪碧图(Sprite),名字为在生成雪碧图可以排序,需要改成数字名称. 而名字是 ...

  9. IE, FF, Safari前端开发常用调试工具

    一些前端开发 IE 中的常用调试工具: Microsoft Script Debugger —— Companion.JS need to install this Companion.JS —— J ...

  10. spark stream初探

    spark带了一个NetworkWordCount测试程序,用以统计来自某TCP连接的单词输入: /usr/local/spark/bin/run-example streaming.NetworkW ...