自定义分页组件,实现分页

//
/// 委托
///
///
///
public delegate int EventPagingHandler(EventPagingArg e);
public partial class pageControl : UserControl
{
public pageControl()
{
InitializeComponent();
}
public event EventPagingHandler EventPaging;
private object _sourceobj;//数据源

    public object Sourceobj
    {
        get { return _sourceobj; }
        set { _sourceobj = value; }
    }
    //每页记录数
    private int _pageSize = 5;

    public int PageSize
    {
        get { return _pageSize; }
        set
        {
            _pageSize = value;
            GetPageCount();
        }
    }
    //总记录数
    private int _PageTotalNum = 0;

    public int PageTotalNum
    {
        get { return _PageTotalNum; }
        set
        {
            _PageTotalNum = value;
            GetPageCount();
        }
    }
    //页数=总数/每页记录数
    private int _pageCount = 0;

    public int PageCount
    {
        get { return _pageCount; }
        set { _pageCount = value; }
    }
    //当前页
    private int _pageCurrent = 0;

    public int PageCurrent
    {
        get { return _pageCurrent; }
        set { _pageCurrent = value; }
    }
    //页数
    private void GetPageCount()
    {
        if (this.PageTotalNum > 0)
        {
            this.PageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(this.PageTotalNum) / Convert.ToDouble(this.PageSize)));
        }
        else
        {
            this.PageCount = 0;
        }
    }
    //绑定源
    public void Bind()
    {
        if (this.Sourceobj != null)
        {
            //绑定数据源
            this.bindingSource1.DataSource = this.Sourceobj;
            this.bindingNavigator1.BindingSource = this.bindingSource1;
        }
        this.FirstItem.Enabled = true;
        this.PreviousItem.Enabled = true;
        this.NextItem.Enabled = true;
        this.LastItem.Enabled = true;

        if (this.EventPaging != null)
        {
            //通过委托事件方法,触发引用窗体绑定方法获取
            this.PageTotalNum = this.EventPaging(new EventPagingArg());
        }
        if (this.PageCurrent > this.PageTotalNum)
        {
            this.PageCurrent = this.PageTotalNum;
        }
        if (this.PageCount == 1)
        {
            this.PageCurrent = 1;
        }
        if (PageCurrent == 1)
        {
            this.FirstItem.Enabled = false;
            this.PreviousItem.Enabled = false;
        }
        if (PageCurrent == PageCount)
        {
            this.NextItem.Enabled = false;
            this.LastItem.Enabled = false;
        }
        if (this.PageTotalNum == 0)
        {
            this.FirstItem.Enabled = false;
            this.PreviousItem.Enabled = false;
            this.NextItem.Enabled = false;
            this.LastItem.Enabled = false;
        }

        this.TextPositionItem.Text = PageCurrent.ToString();
        this.TextPositionItem.Enabled = true;
        this.labelCountItem.Text = "共 " + PageCount + " 页";
        this.labelCountItem.Enabled = false;
    }
    //首页
    private void FirstItem_Click(object sender, EventArgs e)
    {
        PageCurrent = 1;
        this.Bind();
    }
    //上一页
    private void PreviousItem_Click(object sender, EventArgs e)
    {
        PageCurrent--;
        if (PageCurrent <= 0)
        {
            PageCurrent = 1;
        }
        this.Bind();
    }
    //下一页
    private void NextItem_Click(object sender, EventArgs e)
    {
        this.PageCurrent++;
        if (PageCurrent > PageCount)
        {
            PageCurrent = PageCount;
        }
        this.Bind();
    }
    //尾页
    private void LastItem_Click(object sender, EventArgs e)
    {
        PageCurrent = PageCount;
        this.Bind();
    }
}
/// <summary>
/// 自定义事件数据基类(当前页数?)
/// </summary>
public class EventPagingArg : EventArgs
{
    public EventPagingArg()
    {
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值