Heim >Backend-Entwicklung >C++ >Wie implementiert man die Paginierung in einer WinForms DataGridView?
Paginierung spielt eine entscheidende Rolle bei der Anzeige großer Datensätze, indem sie sie in kleinere, überschaubare Seiten aufteilt. In einer Windows Form-Anwendung ermöglicht die Paginierung Benutzern die einfache Navigation durch eine Datenrasteransicht. So erreichen Sie diese Funktionalität:
Verwenden des BindingNavigator-Steuerelements:
Dieser Ansatz beinhaltet die Verwendung des BindingNavigator-GUI-Steuerelements zusammen mit einem BindingSource-Objekt. Durch Festlegen der DataSource-Eigenschaft des BindingNavigator auf eine benutzerdefinierte Unterklasse von IListSource können Seitenumbrüche definiert werden. Wenn der Benutzer auf die Schaltfläche „Nächste Seite“ klickt, löst der BindingNavigator das Ereignis bindingSource1_CurrentChanged aus. Dieses Ereignis veranlasst Ihren Code, die gewünschten Datensätze für die aktuelle Seite abzurufen.
Hier ist eine Beispielimplementierung mit 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; } }
Das obige ist der detaillierte Inhalt vonWie implementiert man die Paginierung in einer WinForms DataGridView?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!