• Winform分页控件


    设计界面:

    控件代码:

    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 ClientModels;
    
    namespace XXPLClient.UI
    {
        public partial class PagerControl : UserControl
        {
            #region PageSize
            private int _pageSize = 10;
            /// <summary>
            /// 每页数据条数
            /// </summary>
            public int PageSize
            {
                get
                {
                    return _pageSize;
                }
                set
                {
                    if (value == 0)
                    {
                        _pageSize = 1;
                        Pager.rows = 1;
                    }
                    else
                    {
                        _pageSize = value;
                        Pager.rows = value;
                    }
                }
            }
            #endregion
    
            #region 事件
            public event PageChangedHandler PageChanged = null;
            public event RefreshDataHandler RefreshData = null;
            #endregion
    
            #region Pager
            private PagerModel _pager = new PagerModel(1, 10);
            public PagerModel Pager
            {
                get
                {
                    return _pager;
                }
                set
                {
                    _pager = value;
                    txtCurrentPage.Text = _pager.page.ToString();
                    lblTotalPage.Text = " / " + _pager.pageCount.ToString();
                }
            }
            #endregion
    
            #region PagerControl 构造函数
            public PagerControl()
            {
                InitializeComponent();
            }
            #endregion
    
            #region PagerControl_Load
            private void PagerControl_Load(object sender, EventArgs e)
            {
                tools.BackColor = SystemColors.Control;
            }
            #endregion
    
            private void btnFirst_Click(object sender, EventArgs e)
            {
                Pager.page = 1;
                if (PageChanged != null)
                {
                    PageChanged();
                }
            }
    
            private void btnPre_Click(object sender, EventArgs e)
            {
                Pager.page = Pager.prePage;
                if (PageChanged != null)
                {
                    PageChanged();
                }
            }
    
            private void btnNext_Click(object sender, EventArgs e)
            {
                Pager.page = Pager.nextPage;
                if (PageChanged != null)
                {
                    PageChanged();
                }
            }
    
            private void btnLast_Click(object sender, EventArgs e)
            {
                Pager.page = Pager.pageCount;
                if (PageChanged != null)
                {
                    PageChanged();
                }
            }
    
            private void btnRefresh_Click(object sender, EventArgs e)
            {
                if (RefreshData != null)
                {
                    RefreshData();
                }
            }
    
            private void btnCurrentPage_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (!Char.IsDigit(e.KeyChar))
                {
                    e.Handled = true;
                }
            }
    
            private void txtCurrentPage_KeyUp(object sender, KeyEventArgs e)
            {
                if (Convert.ToInt32(txtCurrentPage.Text) < 1)
                {
                    txtCurrentPage.Text = "1";
                }
                if (Convert.ToInt32(txtCurrentPage.Text) > Pager.pageCount)
                {
                    txtCurrentPage.Text = Pager.pageCount.ToString();
                }
                Pager.page = Convert.ToInt32(txtCurrentPage.Text);
                if (PageChanged != null)
                {
                    PageChanged();
                }
            }
        }
        /// <summary>
        /// 翻页
        /// </summary>
        public delegate void PageChangedHandler();
        /// <summary>
        /// 刷新数据
        /// </summary>
        public delegate void RefreshDataHandler();
    }
    View Code

    PagerModel代码:

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace ClientModels
    {
        /// <summary>
        /// 分页
        /// </summary>
        [Serializable]
        public class PagerModel
        {
            #region 字段
            /// <summary>
            /// 当前页数
            /// </summary>
            public int page { get; set; }
            /// <summary>
            /// 每页记录数
            /// </summary>
            public int rows { get; set; }
            /// <summary>
            /// 排序字段
            /// </summary>
            public string sort { get; set; }
            /// <summary>
            /// 排序的方式asc,desc
            /// </summary>
            public string order { get; set; }
            /// <summary>
            /// 记录
            /// </summary>
            public object result { get; set; }
            /// <summary>
            /// 记录数
            /// </summary>
            public int totalRows { get; set; }
            #endregion
    
            #region 构造函数
            public PagerModel()
            {
    
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="page">当前页数</param>
            /// <param name="rows">每页记录数</param>
            public PagerModel(int page, int rows)
            {
                this.page = page;
                this.rows = rows;
            }
            #endregion
    
            #region 扩展字段
            /// <summary>
            /// 总页数
            /// </summary>
            public int pageCount
            {
                get
                {
                    if (rows != 0)
                    {
                        return (totalRows - 1) / rows + 1;
                    }
                    else
                    {
                        return 0;
                    }
                }
            }
            /// <summary>
            /// 上一页
            /// </summary>
            public int prePage
            {
                get
                {
                    if (page - 1 > 0)
                    {
                        return page - 1;
                    }
                    return 1;
                }
            }
            /// <summary>
            /// 下一页
            /// </summary>
            public int nextPage
            {
                get
                {
                    if (page + 1 < pageCount)
                    {
                        return page + 1;
                    }
                    return pageCount;
                }
            }
            #endregion
    
        }
    }
    View Code

    如何使用:

    PagerModel pager = pagerControl.Pager;
    List<BS_Meeting_ext> list;
    if (cbxReviewTime.Checked)
    {
        list = m_MeetingDal.GetList(ref pager, cbxType.SelectedValue.ToString(), txtTerm.Text, txtNum.Text, dtpStart.Value.ToString("yyyy-MM-dd"), dtpEnd.Value.ToString("yyyy-MM-dd"));
    }
    else
    {
        list = m_MeetingDal.GetList(ref pager, cbxType.SelectedValue.ToString(), txtTerm.Text, txtNum.Text, null, null);
    }
    pagerControl.Pager = pager;
    View Code

    使用效果图:

  • 相关阅读:
    Python学习笔记六:集合
    Python学习笔记五:字符串常用操作,字典,三级菜单实例
    Python学习笔记四:列表,购物车程序实例
    Python学习笔记三:数据类型
    python学习笔记二:if语句及循环语句,断点,模块,pyc
    Python学习笔记一:第一个Python程序,变量,字符编码与二进制,用户交互程序
    JS教程:从0开始
    基于Token认证的多点登录和WebApi保护
    数据库高级对象(存储过程,事务,锁,游标,触发器)
    Sql基础(零基础学数据库_SqlServer版)
  • 原文地址:https://www.cnblogs.com/s0611163/p/5682247.html
Copyright © 2020-2023  润新知