|
|
|
|
using DevExpress.XtraEditors;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
namespace ProductionSystem_UserControl.CompositeControls
|
|
|
|
|
{
|
|
|
|
|
public partial class GridPage : XtraUserControl
|
|
|
|
|
{
|
|
|
|
|
public int DataCount = 0;
|
|
|
|
|
public int PageSize = 20;
|
|
|
|
|
public int PageIndex = 1;
|
|
|
|
|
public int[] PageSizeList = new int[] { 10, 20, 30, 50 };
|
|
|
|
|
|
|
|
|
|
public delegate void PagerEvents();
|
|
|
|
|
public event PagerEvents OnPagerEvents;
|
|
|
|
|
|
|
|
|
|
public GridPage()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
|
|
|
|
Load += (s, e) =>
|
|
|
|
|
{
|
|
|
|
|
BindConfig();
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 绑定配置
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void BindConfig()
|
|
|
|
|
{
|
|
|
|
|
cmbPageSize.Properties.Items.AddRange(PageSizeList);
|
|
|
|
|
cmbPageSize.EditValue = PageSize.ToString();
|
|
|
|
|
cmbPageSize.RefreshEditValue();
|
|
|
|
|
cmbPageSize.SelectedIndexChanged += (s, e) =>
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var combo = s as ComboBoxEdit;
|
|
|
|
|
|
|
|
|
|
int selectPageSize = Convert.ToInt32(combo.SelectedItem.ToString());
|
|
|
|
|
|
|
|
|
|
if (OnPagerEvents != null)
|
|
|
|
|
{
|
|
|
|
|
PageSize = selectPageSize;
|
|
|
|
|
IsEnable();
|
|
|
|
|
OnPagerEvents();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
btnFirst.Click += (s, e) =>
|
|
|
|
|
{
|
|
|
|
|
if (OnPagerEvents != null)
|
|
|
|
|
{
|
|
|
|
|
PageIndex = 1;
|
|
|
|
|
IsEnable();
|
|
|
|
|
OnPagerEvents();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
btnPre.Click += (s, e) =>
|
|
|
|
|
{
|
|
|
|
|
if (OnPagerEvents != null)
|
|
|
|
|
{
|
|
|
|
|
if (PageIndex > 1)
|
|
|
|
|
PageIndex -= 1;
|
|
|
|
|
IsEnable();
|
|
|
|
|
OnPagerEvents();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
btnNext.Click += (s, e) =>
|
|
|
|
|
{
|
|
|
|
|
if (OnPagerEvents != null)
|
|
|
|
|
{
|
|
|
|
|
if (PageIndex < GetTotalCount())
|
|
|
|
|
PageIndex += 1;
|
|
|
|
|
IsEnable();
|
|
|
|
|
OnPagerEvents();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
btnLast.Click += (s, e) =>
|
|
|
|
|
{
|
|
|
|
|
if (OnPagerEvents != null)
|
|
|
|
|
{
|
|
|
|
|
PageIndex = GetTotalCount();
|
|
|
|
|
IsEnable();
|
|
|
|
|
OnPagerEvents();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
txtCurentPage.KeyUp += (s, e) =>
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var curIndex = Convert.ToInt32(txtCurentPage.Text);
|
|
|
|
|
if (curIndex >= 1 && curIndex <= GetTotalCount())
|
|
|
|
|
{
|
|
|
|
|
PageIndex = curIndex;
|
|
|
|
|
if (OnPagerEvents != null)
|
|
|
|
|
{
|
|
|
|
|
IsEnable();
|
|
|
|
|
OnPagerEvents();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
txtCurentPage.Text = PageIndex.ToString();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 设置分页控件
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="pageIndex"></param>
|
|
|
|
|
/// <param name="pageSize"></param>
|
|
|
|
|
/// <param name="dataCount"></param>
|
|
|
|
|
public void RefreshPager(int pageIndex, int pageSize, int dataCount)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
PageIndex = pageIndex;
|
|
|
|
|
PageSize = pageSize;
|
|
|
|
|
DataCount = dataCount;
|
|
|
|
|
var pageCount = GetTotalCount();
|
|
|
|
|
|
|
|
|
|
txtCurentPage.Text = PageIndex.ToString();
|
|
|
|
|
lblDesc.Text = $"共{DataCount}条 {PageIndex}/{pageCount} 页";
|
|
|
|
|
|
|
|
|
|
if (PageIndex == 0)
|
|
|
|
|
{
|
|
|
|
|
if (pageCount > 0)
|
|
|
|
|
{
|
|
|
|
|
PageIndex = 1;
|
|
|
|
|
OnPagerEvents();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (PageIndex > pageCount)
|
|
|
|
|
{
|
|
|
|
|
PageIndex = pageCount;
|
|
|
|
|
//OnPagerEvents();
|
|
|
|
|
}
|
|
|
|
|
IsEnable();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
MessageBox.Show(ex.Message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 设置状态
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void IsEnable()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var pageCount = GetTotalCount();
|
|
|
|
|
if (DataCount == 0)
|
|
|
|
|
{
|
|
|
|
|
btnFirst.Enabled = false;
|
|
|
|
|
btnPre.Enabled = false;
|
|
|
|
|
btnNext.Enabled = false;
|
|
|
|
|
btnLast.Enabled = false;
|
|
|
|
|
}
|
|
|
|
|
if (PageIndex == 1 || PageIndex == 0)
|
|
|
|
|
{
|
|
|
|
|
btnFirst.Enabled = false;
|
|
|
|
|
btnPre.Enabled = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
btnFirst.Enabled = true;
|
|
|
|
|
btnPre.Enabled = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (PageIndex == pageCount)
|
|
|
|
|
{
|
|
|
|
|
btnNext.Enabled = false;
|
|
|
|
|
btnLast.Enabled = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
btnNext.Enabled = true;
|
|
|
|
|
btnLast.Enabled = true;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (pageCount > 1)
|
|
|
|
|
{
|
|
|
|
|
txtCurentPage.Enabled = true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
txtCurentPage.Enabled = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获得总页数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public int GetTotalCount()
|
|
|
|
|
{
|
|
|
|
|
int count;
|
|
|
|
|
if (DataCount % PageSize == 0)
|
|
|
|
|
count = DataCount / PageSize;
|
|
|
|
|
else
|
|
|
|
|
count = DataCount / PageSize + 1;
|
|
|
|
|
return count;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|