我的博客园

.NET,Ajax,DataBase,Javascript
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

<转>DataGridView分页控件

Posted on 2010-07-07 00:43  ymmt  阅读(1442)  评论(0编辑  收藏  举报

原文地址:http://radiumwong.javaeye.com/blog/586828

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

效果图如下:


在设计模式下可以为容器添加绑定的DataGridView,并设置工具栏的位置。


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

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

一个调用的例子。

C#代码 复制代码
  1. public partial class Form1 : Form   
  2. {   
  3.     private OrderBiz orderBiz;   
  4.     private const int pageRowCapacity = 15;   
  5.   
  6.     public Form1()   
  7.     {   
  8.        InitializeComponent();   
  9.        dataGridView1.AutoGenerateColumns = false;   
  10.     }   
  11.   
  12.      private void Form1_Load(object sender, EventArgs e)   
  13.      {   
  14.        orderBiz = new OrderBiz(pageRowCapacity);   
  15.        pagingDataGridView1.Initialization(pageRowCapacity, orderBiz.GetSumPersons());   
  16.        BindingDate(0);   
  17.      }   
  18.   
  19.      private void pagingDataGridView1_PageDownClick(object sender, PageChangeEventArgs e)   
  20.      {   
  21.         BindingDate(e.NextPageRowNumber);   
  22.      }   
  23.   
  24.      private void BindingDate(int startRowNumber)   
  25.      {         pagingDataGridView1.BindingData(orderBiz.GetPersonsDataSource(startRowNumber), startRowNumber);   
  26.      }   
  27. }  
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文件下载。

hello everyone!