公布本人自编的asp.net的分页控件

由于在开发asp.net的企业应用软件中,实在太需要第三方的分页控件了。因为datagrid内置的分页性能底下不说,样式也固定了而且简陋,无法满足客户需求。上网找过一些别人写的分页控件,但是很多都是和数据绑定一起的,用起来比较复杂,而且通用性不好,又没有开源,有的甚至要注册,逼不得已自己动手写了。

一开始我用了用户控件方式写的,因为实现起来似乎比较简单,但可恶的是.net.1.1版本对用户控件的自定义事件支持不太好,经常编译的时候警告我的自定义分页触发事件,然后莫名其妙的事件注册就会丢失,让我觉得巨不爽。后来研究sdk上的编写自定义服务器控件的范例,参照着写了分页的自定义控件。

本人认为该分页控件的特点如下:

1 使用灵活,通用性强。因为 和数据绑定无关,网上关于从数据库取分页数据的sql语句或者存储过程有n多,但是通用性和效率之间似乎总是鱼和熊掌的关系,你可以自己选择或者自己定义适合自己的分页算法。

2 使用简单。大概用法是这样的,在从数据库取得新数据集的时候(注意我说的新数据集的含义),把总记录数赋给它,在控件的分页事件里,根据从控件的属性里读取出来的当前页索引,分页记录数,调用你自己的算

法,取得当前新页的数据,重新绑定到数据显示控件里(datagrid,datalist之类的)。简单举例如下:/

先写一个根据控件里的当前页码,分页大小取当前页数据绑定到datagrid的方法

BindPageData()

  int pageSize=CutePager1.pageSize;

 int currentPage=CutePager1.currentPage;

//有了这2个参数,你就可以调用你自己的分页算法取出当前页的数据了。

此处省略你获取当前页数据的过程

DataGrid,DataSource=dt;

DataGrid.DataBind();

}

page_load()

{

if(!IsPostBack)

{

//获取总记录数

int recordCount=。。。。

CutePager1.recordCount=recordCount;

 

BindPageData();

}

}

分页事件处理代码

void CutePager1_PageChanged(Object sender,EventArgs e)

{

BindPageData();

}

其实说白了就是有新的数据集的时候把数据集的记录总数赋值给它,然后在控件的分页事件里写上取当前数据并显示的代码 。

当然,我的控件里也提供了sqlserver和oracle关于取当前页的一些方法,你用也可以。

 

 下载地址

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值