DataGridView分页控件

最近项目需要自己写了一个用来给DataGridView分页用的控件。
考虑到分页效率的原因,没有在控件中对DataSource进行处理,所以这个控件就是一个放置DataGridView的容器,提供一个工具栏。

效果图如下:
[img]http://dl.iteye.com/upload/attachment/202498/1e9c54ac-9d77-3dba-aabc-489402df2a96.bmp[/img]

在设计模式下可以为容器添加绑定的DataGridView,并设置工具栏的位置。
[img]http://dl.iteye.com/upload/attachment/202505/569a8cb8-abd0-3636-aa7c-cdfec6ce9740.bmp[/img]

需要说明的是需要在初始化的时候调用
public void Initialization(int pageRowCapacity, int rowCount)方法,给控件初始化。

实际使用来看效果还不错,呵呵,可以做到对源项目中使用DataGridView的画面提供无缝支持。 :D

一个调用的例子。

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文件下载。

你可能感兴趣的:(.NET技术,设计模式,C,C++,C#)