在C#中,可以使用DataGridView控件來實現報表功能并進行分頁處理。以下是一個簡單的示例代碼,演示如何在DataGridView控件中進行分頁處理:
// 設置每頁顯示的行數
int pageSize = 10;
// 當前頁數
int pageIndex = 1;
// 加載數據到DataGridView控件中
private void LoadData()
{
// 查詢數據的方法
DataTable dt = GetDataFromDatabase();
// 創建一個新的DataTable,用于存放當前頁的數據
DataTable currentPageData = dt.Clone();
// 計算當前頁的起始行和結束行
int startIndex = (pageIndex - 1) * pageSize;
int endIndex = Math.Min(startIndex + pageSize, dt.Rows.Count);
// 將當前頁的數據復制到新的DataTable中
for (int i = startIndex; i < endIndex; i++)
{
currentPageData.ImportRow(dt.Rows[i]);
}
// 將新的DataTable綁定到DataGridView控件中
dataGridView.DataSource = currentPageData;
}
// 上一頁按鈕的點擊事件處理方法
private void btnPrev_Click(object sender, EventArgs e)
{
if (pageIndex > 1)
{
pageIndex--;
LoadData();
}
}
// 下一頁按鈕的點擊事件處理方法
private void btnNext_Click(object sender, EventArgs e)
{
int totalPage = (int)Math.Ceiling((double)totalRecords / pageSize);
if (pageIndex < totalPage)
{
pageIndex++;
LoadData();
}
}
在上面的示例代碼中,首先定義了pageSize和pageIndex兩個變量,用來表示每頁顯示的行數和當前頁數。然后在LoadData方法中,根據pageIndex和pageSize來計算當前頁的起始行和結束行,從原始數據中復制出當前頁的數據,并綁定到DataGridView控件中。通過btnPrev_Click和btnNext_Click方法來實現上一頁和下一頁的功能,同時更新當前頁數并重新加載數據。