首頁 > 後端開發 > C++ > 如何在 WinForms DataGridView 中實作分頁?

如何在 WinForms DataGridView 中實作分頁?

Linda Hamilton
發布: 2024-12-31 14:56:10
原創
573 人瀏覽過

How to Implement Pagination in a WinForms DataGridView?

在WinForm DataGridview 中實現分頁

分頁透過將大型資料集分成更小的、可管理的頁面,在顯示大型資料集方面發揮著至關重要的作用。在 Windows 窗體應用程式中,分頁可讓使用者輕鬆瀏覽資料網格視圖。以下是實作此功能的方法:

使用 BindingNavigator 控制項:

此方法涉及使用 BindingNavigator GUI 控制項以及 BindingSource 物件。透過將 BindingNavigator 的 DataSource 屬性設定為 IListSource 的自訂子類,可以定義分頁符號。當使用者點擊「下一頁」按鈕時,BindingNavigator 會觸發 bindingSource1_CurrentChanged 事件。此事件會觸發您的程式碼來取得目前頁面所需的記錄。

以下是使用 C# 的範例實作:

private const int totalRecords = 43;
private const int pageSize = 10;

public Form1()
{
    dataGridView1.Columns.Add(new DataGridViewTextBoxColumn { DataPropertyName = "Index" });
    bindingNavigator1.BindingSource = bindingSource1;
    bindingSource1.CurrentChanged += new System.EventHandler(bindingSource1_CurrentChanged);
    bindingSource1.DataSource = new PageOffsetList();
}

private void bindingSource1_CurrentChanged(object sender, EventArgs e)
{
    int offset = (int)bindingSource1.Current;
    var records = new List<Record>();
    for (int i = offset; i < offset + pageSize && i < totalRecords; i++)
        records.Add(new Record { Index = i });
    dataGridView1.DataSource = records;
}

class PageOffsetList : System.ComponentModel.IListSource
{
    public bool ContainsListCollection { get; protected set; }

    public System.Collections.IList GetList()
    {
        var pageOffsets = new List<int>();
        for (int offset = 0; offset < totalRecords; offset += pageSize)
            pageOffsets.Add(offset);
        return pageOffsets;
    }
}
登入後複製

以上是如何在 WinForms DataGridView 中實作分頁?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板