StableVersion4.3/HL_FristAidPlatform_Public/Form/UserControlForPage.cs

310 lines
8.7 KiB
C#
Raw Permalink Normal View History

2024-03-11 09:47:34 +08:00
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);
}
}
}
}