Winform DataGridView 自定義分頁

需要一個、BindingNavigate、BindingSource控件,分別命名爲PageOperation,dataSource;

首先,定義私有字段:

        private int pageTotal;

        private int pageSize = 10;

        private int pageIndex = 1;

然後是賦值 dataSource.DataSource = list;


#region 分頁相關

        //分頁操作

        private void PageOperation(ToolStripItemClickedEventArgs e)

        {

            if (e.ClickedItem.Text == "首頁")

            {

                FirstPageOperation();

            }

            if (e.ClickedItem.Text == "上一頁")

            {

                PrevPageOperation();

            }

            if (e.ClickedItem.Text == "下一頁")

            {

                NextPageOperation();

            }

            if (e.ClickedItem.Text == "尾頁")

            {

                LastPageOperation();

            }

        }

        //尾頁

        private void LastPageOperation()

        {

            pageIndex = pageTotal;

            if (pageIndex + 1 >= pageTotal)

            {

                PageWithLastOfNext(false);

            }

            if (pageTotal > 1)

            {

                PageWithPrevOfFirst(true);

            }

        }

        //下一頁

        private void NextPageOperation()

        {

            if (pageIndex + 1 >= pageTotal)

            {

                PageWithLastOfNext(false);

            }

            pageIndex++;

            if (pageTotal > 1)

            {

                PageWithPrevOfFirst(true);

            }

        }

        //上一頁

        private void PrevPageOperation()

        {

            if (pageIndex - 1 <= 1)

            {

                PageWithPrevOfFirst(false);

            }

            pageIndex--;

            if (pageTotal > 1)

            {

                PageWithLastOfNext(true);

            }

        }

        //首頁

        private void FirstPageOperation()

        {

            pageIndex = 1;

            if (pageIndex - 1 <= 1)

            {

                PageWithPrevOfFirst(false);

            }

            if (pageTotal > 1)

            {

                PageWithLastOfNext(true);

            }

        }


        private void PageWithPrevOfFirst(bool enabled)

        {

                    itemPagePrev.Enabled = enabled;

                    iitemPageFirst.Enabled = enabled;

        }


        private void PageWithLastOfNext(bool enabled)

        {

                    itemPageLast.Enabled = enabled;

                    itemPageNext.Enabled = enabled;

        }


        #endregion



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章