现在的位置: 首页 > 综合 > 正文

自定义winform分页控件

2013年10月09日 ⁄ 综合 ⁄ 共 2967字 ⁄ 字号 评论关闭

原文地址:http://www.cnblogs.com/nosnowwolf/archive/2008/07/22/1248796.html

 

 

效果如下:

代码实现如下:

 

namespace WindowsApp.MyControl
{
    
/// <summary>
    
/// 申明委托
    
/// </summary>
    
/// <param name="e"></param>
    
/// <returns></returns>

    public delegate int EventPagingHandler(EventPagingArg e);
    
/// <summary>
    
/// 分页控件呈现
    
/// </summary>

    public partial class Pager : UserControl
    
{
        
public Pager()
        
{
            InitializeComponent();
        }

        
public event EventPagingHandler EventPaging;
        
/// <summary>
        
/// 每页显示记录数
        
/// </summary>

        private int _pageSize = 20;
        
/// <summary>
        
/// 每页显示记录数
        
/// </summary>

        public int PageSize
        
{
            
get return _pageSize; }
            
set
            
{
                _pageSize 
= value;
                GetPageCount();
            }

        }


        
private int _nMax = 0;
        
/// <summary>
        
/// 总记录数
        
/// </summary>

        public int NMax
        
{
            
get return _nMax; }
            
set
            
{
                _nMax 
= value;
                GetPageCount();
            }

        }


        
private int _pageCount = 0;
        
/// <summary>
        
/// 页数=总记录数/每页显示记录数
        
/// </summary>

        public int PageCount
        
{
            
get return _pageCount; }
            
set { _pageCount = value; }
        }


        
private int _pageCurrent = 0;
        
/// <summary>
        
/// 当前页号
        
/// </summary>

        public int PageCurrent
        
{
            
get return _pageCurrent; }
            
set { _pageCurrent = value; }
        }



        
private void GetPageCount()
        
{
            
if (this.NMax > 0)
            
{
                
this.PageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(this.NMax) / Convert.ToDouble(this.PageSize)));
            }

            
else
            
{
                
this.PageCount = 0;
            }

        }


        
/// <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 == 1)
            
{
                
this.PageCurrent = 1;
            }

            lblPageCount.Text 
= this.PageCount.ToString();
            
this.lblMaxPage.Text = ""+this.NMax.ToString()+"条记录";
            
this.txtCurrentPage.Text = this.PageCurrent.ToString();

            
if (this.PageCurrent == 1)
            
{
                
this.btnPrev.Enabled = false;
                
this.btnFirst.Enabled = false;
            }

            
else
            
{
                btnPrev.Enabled 
= true;
                btnFirst.Enabled 
= true;
            }


            
if (this.PageCurrent == this.PageCount)
            
{
                
this.btnLast.Enabled = false
【上篇】
【下篇】

抱歉!评论已关闭.