
一、功能说明
主要是针对System.Web.UI.WebControls.Repeater加入了分页功能
具体说明:
1、保留repeater中HeaderTemplate , ItemTemplate, FooterTemplate的功能
2、给定SQL语句,排序字段,每页的记录数:即可根据从后台提取所需的记录。
(分别对应属性:SQL , OrderFld,RecordCountPerPage)
3、封装了浏览条:
首页 上页 1 2 3 4 5 下页 末页 (EditBox用于输入跳转页数)
A、可设置浏览条的显示位置:上面,下面,上下同时显示
对应属性(NavPos)
B、可设置浏览条的显示方向:左边,右边
对应属性(NavAlign)
C、可设置中间显示的页数的个数(如上述为5,可运态设置)
对应属性(BarIndex)
D、脚本验证 “跳转页数编辑框” 的合法性,只能为正整数
二、实现说明
1、自定义控件,继承自Repeater
2、分页实现,拼SQL语句,根据三个属性:SQL , OrderFld,RecordCountPerPage
string sqlExec = @"select *
from
(
select top " + (end-begin+1) + @" * from
(
select top " + end + @" *
from
(
select * from stu
) as alias1
order by " + this.OrderFld + @" asc
) as alias2
order by " + this.OrderFld + @" desc
) as alias3
order by " + this.OrderFld ;
三、疑问
1、跨不同类型的数据库?
数据库的连接目前写死,如果要跨不同类型的数据库,只有在相应位置用if…else..实现,使用针对相应类型的数据库的SQL来实现,这违反了设计模式。。。不知道如何实现。
2、分页的实现
是否有效率更高的实现方式?
3、如何能做到在外部对浏览条进行样式控件
如果以属性方式提供出来则要加N多属性,@!#$#^&^%&^%
4、如何在子类中隐藏父类的属性?
此控件抛弃了repeater中的datasource属性,如何将父类的属性在子类中隐藏?用private override Datasource语法通不过。。。
本文介绍了一种针对System.Web.UI.WebControls.Repeater控件的分页功能增强方案,包括自定义控件的实现细节及SQL语句的拼接方法。讨论了控件的配置选项,如记录每页数量、导航栏位置等,并提出了几个待解决的技术问题。
2511

被折叠的 条评论
为什么被折叠?



