StableVersion4.3/HL_FristAidPlatform_Public/Form/UserControlForPage.cs

310 lines
8.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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);
}
}
}
}