Maison >développement back-end >C++ >Comment implémenter la pagination dans un DataGridView Windows Forms ?
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(); }
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; }
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!