微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Winform分页控件

设计界面:

控件代码

using System;
 System.Collections.Generic;
 System.ComponentModel;
 System.Drawing;
 System.Data;
 System.Linq;
 System.Text;
 System.Windows.Forms;
 ClientModels;

namespace XXPLClient.UI
{
    public partial class PagerControl : UserControl
    {
        #region PageSize
        private int _pageSize = 10;
        /// <summary>
        /// 每页数据条数
        </summary>
        int PageSize
        {
            get
            {
                return _pageSize;
            }
            setif (value == 0)
                {
                    _pageSize = 1;
                    Pager.rows = ;
                }
                else
                {
                    _pageSize = value;
                    Pager.rows = value;
                }
            }
        }
        #endregion

        #region 事件
        event PageChangedHandler PageChanged = null;
        event RefreshDataHandler RefreshData = #region Pager
        private PagerModel _pager = new PagerModel(1,);
        public PagerModel Pager
        {
             _pager;
            }
            
            {
                _pager = value;
                txtCurrentPage.Text = _pager.page.ToString();
                lblTotalPage.Text = " / " + _pager.pageCount.ToString();
            }
        }
        #region PagerControl 构造函数
         PagerControl()
        {
            InitializeComponent();
        }
        #region PagerControl_Load
        void PagerControl_Load(object sender,EventArgs e)
        {
            tools.BackColor = SystemColors.Control;
        }
        void btnFirst_Click(;
            if (PageChanged != )
            {
                PageChanged();
            }
        }

        void btnPre_Click( Pager.prePage;
            void btnNext_Click( Pager.nextPage;
            void btnLast_Click( Pager.pageCount;
            void btnRefresh_Click(if (RefreshData != )
            {
                RefreshData();
            }
        }

        void btnCurrentPage_KeyPress(if (!Char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        void txtCurrentPage_KeyUp(if (Convert.ToInt32(txtCurrentPage.Text) < )
            {
                txtCurrentPage.Text = 1";
            }
            if (Convert.ToInt32(txtCurrentPage.Text) > Pager.pageCount)
            {
                txtCurrentPage.Text = Pager.pageCount.ToString();
            }
            Pager.page = Convert.ToInt32(txtCurrentPage.Text);
            )
            {
                PageChanged();
            }
        }
    }
    <summary>
     翻页
    </summary>
    delegate void PageChangedHandler();
     刷新数据
     RefreshDataHandler();
}
View Code

PagerModel代码

 System.Collections;
 System.Web;

 ClientModels
{
     分页
    </summary>
    [Serializable]
     PagerModel
    {
        #region 字段
         当前页数
        int page { get; ; }
         每页记录数
        int rows {  排序字段
        string sort {  排序的方式asc,desc
        string order {  记录
        object result {  记录数
        int totalRows { ; }
        #region 构造函数
         PagerModel()
        {

        }
        /// 
        </summary>
        <param name="page">当前页数</param>
        <param name="rows">每页记录数</param>
        public PagerModel(int page, rows)
        {
            this.page = page;
            this.rows = rows;
        }
        #region 扩展字段
         总页数
         pageCount
        {
            if (rows != )
                {
                    return (totalRows - 1) / rows + 
                {
                    return ;
                }
            }
        }
         上一页
         prePage
        {
            if (page - 1 > return page - ;
            }
        }
         下一页
         nextPage
        {
            if (page + 1 < pageCount)
                {
                    return page +  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());
}

{
    list = m_MeetingDal.GetList(null,1)">);
}
pagerControl.Pager = pager;
View Code

使用效果图:

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐