using Gs.DevApp.ToolBox;
|
using System;
|
using System.Windows.Forms;
|
|
namespace UserControls.Data
|
{
|
public partial class UcPageBar : UserControl
|
{
|
public delegate void
|
GetPageDataEvents(int curPage, int pageSize); //定义委托
|
|
public UcPageBar()
|
{
|
InitializeComponent();
|
this.cbxRowCount.Text = "50";
|
this.cbxRowCount.SelectedIndexChanged += new System.EventHandler(this.cbxRowCount_SelectedIndexChanged);
|
}
|
|
public event GetPageDataEvents PagerEvent; //定义事件
|
|
//选择每页显示条数
|
private void cbxRowCount_SelectedIndexChanged(object sender,
|
EventArgs e)
|
{
|
int _RowsCount = Convert.ToInt32(cbxRowCount.Text);
|
CurrentPage = 1;
|
if (PagerEvent != null)
|
if (_RowsCount > 0 && _RowsCount > 0)
|
BtnEvents(sender, e);
|
}
|
|
//手动输入显示页面编号
|
private void tbxCurrentPage_KeyDown(object sender, KeyEventArgs e)
|
{
|
if (e.KeyCode == Keys.Enter)
|
{
|
var page = Convert.ToInt32(tbxCurrentPage.Text);
|
if (page < 1)
|
CurrentPage = 1;
|
else if (page > TotalPages)
|
CurrentPage = TotalPages;
|
else
|
CurrentPage = page;
|
if (PagerEvent != null)
|
BtnEvents(sender, e);
|
}
|
}
|
|
|
//点击首页按钮
|
private void lbFirstPage_Click(object sender, EventArgs e)
|
{
|
if (CurrentPage == 1)
|
return;
|
CurrentPage = 1;
|
if (PagerEvent != null)
|
BtnEvents(sender, e);
|
}
|
|
//点击上一页按钮
|
private void lbPrePage_Click(object sender, EventArgs e)
|
{
|
if (CurrentPage == 1)
|
return;
|
if (CurrentPage <= TotalPages) CurrentPage -= 1;
|
if (PagerEvent != null)
|
BtnEvents(sender, e);
|
}
|
|
//点击下一页按钮
|
private void lbNextPage_Click(object sender, EventArgs e)
|
{
|
if (CurrentPage == TotalPages)
|
return;
|
if (CurrentPage < TotalPages) CurrentPage += 1;
|
if (PagerEvent != null)
|
BtnEvents(sender, e);
|
}
|
|
//末页按钮
|
private void lbEnd_Click(object sender, EventArgs e)
|
{
|
if (CurrentPage == TotalPages)
|
return;
|
CurrentPage = TotalPages;
|
if (PagerEvent != null)
|
BtnEvents(sender, e);
|
}
|
|
private void BtnEvents(object sender, EventArgs e)
|
{
|
PagerEvent(CurrentPage, RowsCount);
|
}
|
|
public void setTxt()
|
{
|
tbxCurrentPage.Text = CurrentPage.ToString();
|
lbTotalPages.Text = "共 " + TotalPages + "页";
|
lbTotalRows.Text = "共 " + RecordCount + " 条记录";
|
if (RowsCount > 0)
|
cbxRowCount.Text = RowsCount.ToString();
|
if (CurrentPage == 1)
|
lbFirstPage.Enabled = false;
|
else
|
lbFirstPage.Enabled = true;
|
if (CurrentPage == TotalPages)
|
lbEnd.Enabled = false;
|
else
|
lbEnd.Enabled = true;
|
if (CurrentPage == 1)
|
lbPrePage.Enabled = false;
|
else
|
lbPrePage.Enabled = true;
|
if (CurrentPage == TotalPages)
|
lbNextPage.Enabled = false;
|
else
|
lbNextPage.Enabled = true;
|
}
|
|
#region 定义属性
|
|
/// <summary>
|
/// 总页数
|
/// </summary>
|
public int TotalPages { get; set; }
|
|
/// <summary>
|
/// 当前页
|
/// </summary>
|
public int CurrentPage { get; set; }
|
|
/// <summary>
|
/// 每页条数
|
/// </summary>
|
public int RowsCount { get { return int.Parse(this.cbxRowCount.Text); } }
|
|
|
int _RecordCount;
|
/// <summary>
|
/// 总记录数
|
/// </summary>
|
public int RecordCount
|
{
|
get { return _RecordCount; }
|
set
|
{
|
_RecordCount = value;
|
setTxt();
|
}
|
}
|
|
#endregion
|
}
|
}
|