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();
};
}
///
/// 绑定配置
///
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)
{
}
};
}
///
/// 设置分页控件
///
///
///
///
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);
}
}
///
/// 设置状态
///
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)
{
}
}
///
/// 获得总页数
///
///
public int GetTotalCount()
{
int count;
if (DataCount % PageSize == 0)
count = DataCount / PageSize;
else
count = DataCount / PageSize + 1;
return count;
}
}
}