ページネーションは、大規模なデータセットを小さな管理しやすいページに分割して表示する際に重要な役割を果たします。 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 中国語 Web サイトの他の関連記事を参照してください。