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