Maison > développement back-end > C++ > Comment implémenter la pagination dans un DataGridView Windows Forms ?

Comment implémenter la pagination dans un DataGridView Windows Forms ?

DDD
Libérer: 2024-12-27 18:05:15
original
937 Les gens l'ont consulté

How to Implement Pagination in a Windows Forms DataGridView?

Implémentation de la pagination dans Windows Forms DataGridView

Dans Windows Forms, il est nécessaire d'afficher efficacement de grands ensembles de données tout en conservant la convivialité. La pagination permet aux utilisateurs de naviguer dans les enregistrements de données en les divisant en sous-ensembles plus petits affichés sous forme de pages. Cet article explique comment réaliser la pagination dans un contrôle DataGridView dans un formulaire Windows.

Contrôle personnalisé par rapport aux propriétés DataGridView

Le composant DataGridView ne fournit pas de fonction de pagination. Par conséquent, la création d’un contrôle personnalisé n’est pas nécessaire. Au lieu de cela, nous pouvons utiliser le contrôle BindingNavigator en conjonction avec une source de données personnalisée qui prend en charge les sauts de page.

Implémentation :

L'extrait de code ci-dessous décrit l'implémentation de la pagination dans 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();
}
Copier après la connexion

La classe PageOffsetList fournit un IListSource personnalisé qui renvoie un liste des décalages de page en fonction du nombre total d'enregistrements et de la taille de page souhaitée. Lorsque l'utilisateur clique sur le bouton "page suivante" du BindingNavigator, l'événement bindSource1_CurrentChanged est déclenché.

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;
}
Copier après la connexion

Dans le gestionnaire d'événements, le décalage de la page actuelle est récupéré et utilisé pour récupérer la page d'enregistrements souhaitée. . Les enregistrements récupérés sont ensuite liés au contrôle DataGridView, affichant efficacement la page suivante.

Conclusion :

En utilisant BindingNavigator et une source de données personnalisée prenant en charge la pagination, nous avons implémenté la fonctionnalité de pagination au sein d'un contrôle DataGridView dans un formulaire Windows. Cette approche permet une navigation efficace dans de grands ensembles de données, améliorant l'expérience utilisateur et rendant la manipulation des données plus gérable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal