原文地址:http://radiumwong.javaeye.com/blog/586828
最近项目需要自己写了一个用来给DataGridView分页用的控件。
考虑到分页效率的原因,没有在控件中对DataSource进行处理,所以这个控件就是一个放置DataGridView的容器,提供一个工具栏。
效果图如下:
在设计模式下可以为容器添加绑定的DataGridView,并设置工具栏的位置。
需要说明的是需要在初始化的时候调用
public void Initialization(int pageRowCapacity, int rowCount)方法,给控件初始化。
实际使用来看效果还不错,呵呵,可以做到对源项目中使用DataGridView的画面提供无缝支持。
一个调用的例子。
- public partial class Form1 : Form
- {
- private OrderBiz orderBiz;
- private const int pageRowCapacity = 15;
- public Form1()
- {
- InitializeComponent();
- dataGridView1.AutoGenerateColumns = false;
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- orderBiz = new OrderBiz(pageRowCapacity);
- pagingDataGridView1.Initialization(pageRowCapacity, orderBiz.GetSumPersons());
- BindingDate(0);
- }
- private void pagingDataGridView1_PageDownClick(object sender, PageChangeEventArgs e)
- {
- BindingDate(e.NextPageRowNumber);
- }
- private void BindingDate(int startRowNumber)
- { pagingDataGridView1.BindingData(orderBiz.GetPersonsDataSource(startRowNumber), startRowNumber);
- }
- }
public partial class Form1 : Form { private OrderBiz orderBiz; private const int pageRowCapacity = 15; public Form1() { InitializeComponent(); dataGridView1.AutoGenerateColumns = false; } private void Form1_Load(object sender, EventArgs e) { orderBiz = new OrderBiz(pageRowCapacity); pagingDataGridView1.Initialization(pageRowCapacity, orderBiz.GetSumPersons()); BindingDate(0); } private void pagingDataGridView1_PageDownClick(object sender, PageChangeEventArgs e) { BindingDate(e.NextPageRowNumber); } private void BindingDate(int startRowNumber) { pagingDataGridView1.BindingData(orderBiz.GetPersonsDataSource(startRowNumber), startRowNumber); } }
附件中有源代码和dll文件下载。
- PagingDataGridView.zip (31.6 KB)
- Radium.Control.DgvPagingContainer.dll.zip (6.2 KB)