310 lines
8.7 KiB
C#
310 lines
8.7 KiB
C#
using System;
|
||
using System.Windows.Forms;
|
||
|
||
namespace HL_FristAidPlatform_Public
|
||
{
|
||
public partial class UserControlForPage : UserControl
|
||
{
|
||
#region 变量
|
||
|
||
/// <summary>
|
||
/// 总条数
|
||
/// </summary>
|
||
private int totalNumber = 0;
|
||
|
||
/// <summary>
|
||
/// 每页条数
|
||
/// </summary>
|
||
private int pageSize = 10;
|
||
|
||
/// <summary>
|
||
/// 当前页
|
||
/// </summary>
|
||
private int curPage = 1;
|
||
|
||
/// <summary>
|
||
/// 委托
|
||
/// </summary>
|
||
/// <param name="curPage"></param>
|
||
/// <param name="pageSize"></param>
|
||
public delegate void MyPagerEvents(int curPage, int pageSize);
|
||
|
||
/// <summary>
|
||
/// 委托
|
||
/// </summary>
|
||
/// <param name="curPage"></param>
|
||
/// <param name="pageSize"></param>
|
||
public delegate void ExportEvents(bool singlePage);//单页,所有
|
||
|
||
/// <summary>
|
||
/// 基于上面的委托定义事件
|
||
/// </summary>
|
||
public event MyPagerEvents myPagerEvents;
|
||
|
||
/// <summary>
|
||
/// 基于上面的委托定义事件
|
||
/// </summary>
|
||
public event ExportEvents exportEvents;
|
||
|
||
#endregion 变量
|
||
|
||
public UserControlForPage()
|
||
{
|
||
InitializeComponent();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 计算分页,分页大小,总记录数。
|
||
/// </summary>
|
||
/// <param name="pageSize"></param>
|
||
/// <param name="totalNumber"></param>
|
||
/// <param name="curPage"></param>
|
||
public void RefreshPager(int pageSize, int totalNumber, int curPage)
|
||
{
|
||
try
|
||
{
|
||
this.totalNumber = totalNumber;
|
||
this.pageSize = pageSize;
|
||
this.curPage = curPage;
|
||
lcStatus.Text = string.Format("(共{0}条记录,每页{1}条,共{2}页)", totalNumber, pageSize, GetPageCount());
|
||
textEditToPage.Text = curPage.ToString();
|
||
comboBoxEditPageSize.Text = pageSize.ToString();
|
||
|
||
if (curPage == 0)
|
||
{
|
||
if (GetPageCount() > 0 && myPagerEvents != null)
|
||
{
|
||
curPage = 1;
|
||
myPagerEvents(curPage, pageSize);
|
||
}
|
||
}
|
||
if (curPage > GetPageCount() && myPagerEvents != null)
|
||
{
|
||
curPage = GetPageCount();
|
||
myPagerEvents(curPage, pageSize);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("分页控件", "RefreshPager:\r\n" + ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取总记录数
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public int GetTotalNumber()
|
||
{
|
||
return totalNumber;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获得当前页编号,从1开始
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public int GetCurPage()
|
||
{
|
||
return curPage;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获得总页数
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public int GetPageCount()
|
||
{
|
||
try
|
||
{
|
||
int count = 0;
|
||
if (totalNumber % pageSize == 0)
|
||
{
|
||
count = totalNumber / pageSize;
|
||
}
|
||
else
|
||
{
|
||
count = totalNumber / pageSize + 1;
|
||
}
|
||
|
||
if (count == 0)
|
||
{
|
||
count = 1;
|
||
}
|
||
return count;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("分页控件", "获得总页数:\r\n" + ex);
|
||
return 0;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 下一页
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void simpleButtonNext_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (myPagerEvents != null)
|
||
{
|
||
if (curPage < GetPageCount())
|
||
curPage += 1;
|
||
myPagerEvents(curPage, pageSize);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("分页控件", "下一页:\r\n" + ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 最后一页
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void simpleButtonEnd_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (myPagerEvents != null)
|
||
{
|
||
curPage = GetPageCount();
|
||
myPagerEvents(curPage, pageSize);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("分页控件", "最后一页:\r\n" + ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 上一页
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void simpleButtonPre_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (myPagerEvents != null)
|
||
{
|
||
if (curPage > 1)
|
||
curPage -= 1;
|
||
myPagerEvents(curPage, pageSize);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("分页控件", "上一页:\r\n" + ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 首页
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void simpleButtonFirst_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (myPagerEvents != null)
|
||
{
|
||
curPage = 1;
|
||
myPagerEvents(curPage, pageSize);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("分页控件", "首页:\r\n" + ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 跳转
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void simpleButtonToPage_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
int selPage = Convert.ToInt32(textEditToPage.Text);
|
||
if (myPagerEvents != null)
|
||
{
|
||
if ((selPage >= 1) && (selPage <= GetPageCount()))
|
||
curPage = selPage;
|
||
myPagerEvents(curPage, pageSize);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("分页控件", "跳转:\r\n" + ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 到处当前页
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void simpleButtonExportCurPage_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (exportEvents != null)
|
||
{
|
||
exportEvents(true);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("分页控件", "到处当前页:\r\n" + ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导出全部页
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void simpleButtonExportAllPage_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
exportEvents?.Invoke(false);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("分页控件", "导出全部页:\r\n" + ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 每页大小
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void comboBoxEditPageSize_EditValueChanged(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
int pageSize = Convert.ToInt32(comboBoxEditPageSize.Text);
|
||
if ((pageSize > 0) && myPagerEvents != null)
|
||
{
|
||
this.pageSize = pageSize;
|
||
myPagerEvents(curPage, pageSize);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("分页控件", "每页大小:\r\n" + ex);
|
||
}
|
||
}
|
||
}
|
||
} |