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 System.Collections;
namespace XjxMobilenursing
{
public partial class PagerCtrl : UserControl
{
public PagerCtrl()
{
InitializeComponent();
}
[Browsable(true)]
[Category("页面记录数")]
[Description("显示页面记录数")]
[DefaultValue(typeof(int), "10")]
public int PageSize{ get;set; }
public Hashtable condition { get; set; }//查询条件
private int totalCount = 0;//总记录数
public int TotalCount
{
get { return totalCount; }
set
{
totalCount = value;
if (totalCount <= 0) totalCount = 0;
if (totalCount <= PageSize)
{
lkbNextPage.Enabled = false;
}
else
{
lkbNextPage.Enabled = true;
}
lkbPrePage.Enabled = false;
lblPageSize.Text = PageSize.ToString();
lblTotalCount.Text = totalCount.ToString();
lblPageNum.Text = PageNum.ToString();
}
}
public int BeginPage//起始记录
{
get
{
return (currentPage - 1) * PageSize + 1;
}
}
public int EndPage { //结束记录
get {
if ((CurrentPage < PageNum) || TotalCount % PageSize == 0)
{
return BeginPage + PageSize - 1;
}
return BeginPage + (TotalCount % PageSize) - 1;
}
}
private int currentPage = 1;//当前第几页
public int CurrentPage
{
get { return currentPage; }
set
{
currentPage = value;
lblCurrentPage.Text = currentPage.ToString();
}
}
public int PageNum
{
get
{
int pageNum = 0;//总的页数
if (PageSize > 0)
{
pageNum = (totalCount % PageSize == 0) ? (totalCount / PageSize) : (totalCount / PageSize) + 1;
}
return pageNum;
}
}
public delegate void LoadDataSouceDelegate(Hashtable condition);
public event LoadDataSouceDelegate LoadDataSouce;
private void lkbFirstPage_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{//首页
CurrentPage = 1;
LoadDataSouce(condition);
lkbPrePage.Enabled = false;
if (TotalCount > PageSize)
{
lkbNextPage.Enabled = true;
}
}
private void lkbPrePage_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{//上一页
CurrentPage--;
LoadDataSouce(condition);
lkbNextPage.Enabled = true;
if (CurrentPage <= 1)
{
CurrentPage = 1;
lkbPrePage.Enabled = false;
}
else
{
lkbPrePage.Enabled = true;
}
}
private void lkbNextPage_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{//下一页
CurrentPage++;
LoadDataSouce(condition);
lkbPrePage.Enabled = true;
if (CurrentPage < PageNum)
{
lkbNextPage.Enabled = true;
}
else
{
CurrentPage = PageNum;
lkbNextPage.Enabled = false;
}
}
private void lkbLastPage_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{//尾页
CurrentPage = PageNum;
LoadDataSouce(condition);
lkbNextPage.Enabled = false;
if (TotalCount > PageSize)
{
lkbPrePage.Enabled = true;
}
}
private void btnGo_Click(object sender, EventArgs e)
{//跳转
if (!StringCommon.IsNumeric(txtWherePage.Text.Trim()))
{
MessageBox.Show("请输入数字");
return;
}
int goWherePage = StringCommon.ToInt32Value(txtWherePage.Text.Trim(),1);
if (goWherePage <= 0 || goWherePage > PageNum)
{
MessageBox.Show(string.Format("请输入1~{0}之间的数",PageNum));
return;
}
CurrentPage = goWherePage;
LoadDataSouce(condition);
if (CurrentPage <= 1)
{
lkbPrePage.Enabled = false;
}
else
{
lkbPrePage.Enabled = true;
}
if (CurrentPage < PageNum)
{
lkbNextPage.Enabled = true;
}
else
{
lkbNextPage.Enabled = false;
}
}
}
}