DataGridView中分页显示数据

        int PageSize = 0;
        int Max = 0;
        int PageCount = 0;
        int PageCurrent = 0;
        int RowCurrent = 0;

 

        private void LoadData()
        {
            int StartPos = 0;
            int EndPos = 0;

            DataTable TempTable = CostTable.Clone();

            if (PageCurrent == PageCount)
                EndPos = Max;
            else
                EndPos = PageCurrent * PageSize;

            StartPos = RowCurrent;

            for (int i = StartPos; i < EndPos; i++)
            {
                try
                {
                    TempTable.ImportRow(CostTable.Rows[i]);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                RowCurrent++;
            }

            dataGridView1.DataSource = TempTable;
            dataGridView1.Update();

            toolStripStatusLabel2.Text = string.Format("当前页数 {0}/{1}", PageCurrent, PageCount);
        }

        private void showToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string strSQL = "SELECT * FROM Cost";
            CostTable.Clear();
            Common.AccessDb.QueryTable(strSQL, ref CostTable);
            dataGridView1.DataSource = CostTable;
            Max = CostTable.Rows.Count;
            PageSize = 10;
            PageCount = Max / PageSize;
            if (Max % PageSize > 0)
                PageCount++;
            PageCurrent = 1;
            RowCurrent = 0;
            LoadData();
            SetDgvHeaderText();
        }

 

        private void toolStripButton6_Click(object sender, EventArgs e)
        {
            PageCurrent++;

            if (PageCurrent > PageCount)
            {
                PageCurrent--;
                MessageBox.Show("已经到最后一页!");
                return;
            }
            else
                RowCurrent = PageSize * (PageCurrent - 1);

            LoadData();
        }

        private void toolStripButton7_Click(object sender, EventArgs e)
        {
            PageCurrent--;

            if (PageCurrent < 1)
            {
                PageCurrent++;
                MessageBox.Show("已经是第一页!");
                return;
            }
            else
                RowCurrent = PageSize * (PageCurrent - 1);

            LoadData();
        }

posted on 2012-10-15 12:31  Arrow.Lu  阅读(293)  评论(0)    收藏  举报