ASP.NET中利用DataGrid实现高效分页(2)

分类: asp.net技巧   出处:iocblog整理  更新时间:2008-08-14   添加到收藏  

  这些属性设置好后再绑定数据:
  
  productgrid.datasource = listproduct(1, productgrid.pagesize); // 在page_load里面 pageindex为1,记住判断ispostback,在ispostback为false时执行这些代码
  
  productgrid.databind();
  
  这样数据绑定后就可以看到具有分页模样的页面了.但是还不能真正的分页.要实现真正的分页,还必须实现下面的功能.
  
  处理datagrid的pageindexchanged事件(处理用户新选中某页时的事件)
  
  private void productgrid_pageindexchanged(object source, system.web.ui.webcontrols.datagridpagechangedeventargs e)
  
  {
  
     // 如果在存储过程分页功能中用1表示第一页的序号的话那么这里必须用e.newpageindex+1作为pageindex(如果选择了datagrid上页号为3的页,那么e.newpageindex就为2), 否则的话直接用e.newpageindex就可以了
  
     productgrid.datasource = listproduct(e.newpageindex+1, productgrid.pagesize); // 从数据库中读取新的数据
  
     productgrid.databind();
  
     // 设置当前的page序号值, 如果不设置的话它是不会变得, 这样会给用户造成误解,以为所有页的数据相同。
  
     productgrid.currentpageindex =e.newpageindex;
  
  }
  
  如果你处理了datagrid的itemcommand的事件的话,必须在itemcommand事件处理代码前面加上这些代码:
  [iocblog.net 来源]
  if (e.item.itemtype == listitemtype.pager)
  
  {
  
     return;
  
  }
  
  因为当pageindexchanged事件激发,也就是用户选则了另外一页时会先激发itemcommand事件,如果不这样处理的话,可能会遇到一些意想不到的情况(如果你确实需要的话也可以上面这段代码,不过最好实际测试一下)。
  
  整个过程完成后,再次浏览页面,觉得速度真是快多了
  [iocblog.net 来源]

上一页 [1] [2]


Tag: DataGrid ,分页