123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- using DevExpress.XtraEditors;
- using DW5S.Repostory;
- using ExtensionsDev;
- using System;
- using System.Linq;
- using System.Threading.Tasks;
- namespace DW5S.App.UserControl
- {
- public partial class CtrlPaging : DevExpress.XtraEditors.XtraUserControl
- {
- public delegate Task CurrentPageEventHandler(int currentPage);
- /// <summary>
- /// 当前页数改变事件 当前页数
- /// </summary>
- public event CurrentPageEventHandler CurrentPageChanged;
- public delegate Task PageCountEventHandler(int pageCount);
- /// <summary>
- /// 每页条数改变事件 每页条数
- /// </summary>
- public event PageCountEventHandler PageCountChanged;
- /// <summary>
- /// 总条数
- /// </summary>
- private int TotalCount { get; set; } = 0;
- /// <summary>
- /// 总页数
- /// </summary>
- private int TotalPage { get; set; } = 0;
- /// <summary>
- /// 当前页数
- /// </summary>
- private int CurrentPage { get; set; } = 1;
- public CtrlPaging()
- {
- InitializeComponent();
- this.layoutControl1.UseDefault();
- }
- public async Task LoadData(int totalCount, int currentPage)
- {
- try
- {
- this.TotalCount = totalCount;
- this.CurrentPage = currentPage;
- var countPerPage = Convert.ToInt32(txtCountPerPage.Text);
- this.TotalPage = TotalCount / countPerPage;
- if (TotalCount % countPerPage != 0)
- TotalPage++;
- if (TotalPage == 1)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.Last.Enabled = false;
- dataNavigator1.Buttons.NextPage.Enabled = false;
- }
- dataNavigator1.TextStringFormat = $"第{CurrentPage}页/共{TotalPage}页";
- }
- catch (Exception ex)
- {
- IocContainer.Logger.Error(ex,"加载星历信息异常");
- DxHelper.MsgBoxHelper.ShowError("加载星历信息异常");
- }
- }
- private async void dataNavigator1_ButtonClick(object sender, NavigatorButtonClickEventArgs e)
- {
- if (e.Button.ButtonType == NavigatorButtonType.First)
- {
- CurrentPage = 1;
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- }
- else if (e.Button.ButtonType == NavigatorButtonType.Last)
- {
- CurrentPage = TotalPage;
- dataNavigator1.Buttons.Last.Enabled = false;
- dataNavigator1.Buttons.NextPage.Enabled = false;
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- }
- else if (e.Button.ButtonType == NavigatorButtonType.NextPage)
- {
- CurrentPage++;
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- if (CurrentPage >= TotalPage)
- {
- dataNavigator1.Buttons.Last.Enabled = false;
- dataNavigator1.Buttons.NextPage.Enabled = false;
- }
- else
- {
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- }
- }
- else if (e.Button.ButtonType == NavigatorButtonType.PrevPage)
- {
- CurrentPage--;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- if (CurrentPage == 1)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- }
- }
- await CurrentPageChanged?.Invoke(CurrentPage);
- dataNavigator1.TextStringFormat = $"第{CurrentPage}页/共{TotalPage}页";
- }
- private async void btnGo_Click(object sender, EventArgs e)
- {
- int.TryParse(txtGoPage.Text, out int _currentPage);
- if (_currentPage > TotalPage)
- {
- _currentPage = TotalPage;
- }
- if (_currentPage > 0)
- {
- CurrentPage = _currentPage;
- if (CurrentPage == 1 && CurrentPage < TotalPage)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- }
- else if (CurrentPage == 1 && CurrentPage == TotalPage)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- }
- else if (CurrentPage == TotalPage)
- {
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- dataNavigator1.Buttons.Last.Enabled = false;
- dataNavigator1.Buttons.NextPage.Enabled = false;
- if (dataNavigator1.Position == 0)
- dataNavigator1.Position = 1;
- }
- else
- {
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- dataNavigator1.Position = 1;
- }
- await CurrentPageChanged(CurrentPage);
- dataNavigator1.TextStringFormat = $"第{CurrentPage}页/共{TotalPage}页";
- }
- }
- private async void txtCountPerPage_EditValueChanged(object sender, EventArgs e)
- {
- int.TryParse(txtCountPerPage.Text, out int countPerPage);
- if (countPerPage > 0)
- {
- this.TotalPage = TotalCount / countPerPage;
- if (TotalCount % countPerPage != 0)
- TotalPage++;
- if (CurrentPage > TotalPage)
- CurrentPage = TotalPage;
- if (CurrentPage == 1 && CurrentPage < TotalPage)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- }
- else if (CurrentPage == 1 && CurrentPage == TotalPage)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- }
- else if (CurrentPage == TotalPage)
- {
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- dataNavigator1.Buttons.Last.Enabled = false;
- dataNavigator1.Buttons.NextPage.Enabled = false;
- }
- else
- {
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- dataNavigator1.Position = 1;
- }
- await PageCountChanged?.Invoke(CurrentPage);
- dataNavigator1.TextStringFormat = $"第{CurrentPage}页/共{TotalPage}页";
- }
- }
- }
- }
|