Heim >Backend-Entwicklung >C++ >Wie implementiert man die Paginierung in einer Windows Forms DataGridView?

Wie implementiert man die Paginierung in einer Windows Forms DataGridView?

DDD
DDDOriginal
2024-12-27 18:05:15950Durchsuche

How to Implement Pagination in a Windows Forms DataGridView?

Paginierungsimplementierung in Windows Forms DataGridView

In Windows Forms besteht die Notwendigkeit, große Datensätze effizient anzuzeigen und gleichzeitig die Benutzerfreundlichkeit zu wahren. Durch die Paginierung können Benutzer durch Datensätze navigieren, indem sie diese in kleinere Teilmengen unterteilen, die als Seiten angezeigt werden. In diesem Artikel wird untersucht, wie Sie eine Paginierung in einem DataGridView-Steuerelement in einem Windows-Formular erreichen.

Benutzerdefiniertes Steuerelement vs. DataGridView-Eigenschaften

Die DataGridView-Komponente bietet keine integrierte Paginierungsfunktion. Daher ist die Erstellung eines benutzerdefinierten Steuerelements nicht erforderlich. Stattdessen können wir das BindingNavigator-Steuerelement in Verbindung mit einer benutzerdefinierten Datenquelle verwenden, die Seitenumbrüche unterstützt.

Implementierung:

Der folgende Codeausschnitt beschreibt die Implementierung der Paginierung in DataGridView:

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();
}

Die PageOffsetList-Klasse stellt eine benutzerdefinierte IListSource bereit, die eine Liste von zurückgibt Seitenversätze basierend auf der Gesamtzahl der Datensätze und der gewünschten Seitengröße. Wenn der Benutzer auf die Schaltfläche „Nächste Seite“ des BindingNavigators klickt, wird das Ereignis bindingSource1_CurrentChanged ausgelöst.

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

Im Ereignishandler wird der aktuelle Seitenoffset abgerufen und zum Abrufen der gewünschten Seite mit Datensätzen verwendet . Die abgerufenen Datensätze werden dann an das DataGridView-Steuerelement gebunden, wodurch effektiv die nächste Seite angezeigt wird.

Schlussfolgerung:

Durch die Verwendung des BindingNavigator und einer benutzerdefinierten Datenquelle, die Paginierung unterstützt, Wir haben die Paginierungsfunktion innerhalb eines DataGridView-Steuerelements in einem Windows-Formular implementiert. Dieser Ansatz ermöglicht eine effiziente Navigation in großen Datensätzen, verbessert das Benutzererlebnis und macht die Datenmanipulation einfacher zu handhaben.

Das obige ist der detaillierte Inhalt vonWie implementiert man die Paginierung in einer Windows Forms DataGridView?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn