你是如何面对大量分页需求的?

    在一个B/S项目中或多或少的都有些需要分页的页面,例如:订单查询,数据统计报表什么的.如果你手下的项目中这样的分页模块特别多,你又如何快速而且非常完美的来完成任务呢?

 

   在园子里面有不少园友写过如何提高编码效率相关文章,都不错,有的就提到了分页控件的开发应用,控件最大的特点就是功能复用,减少重复代码,从而提高开发人员的效率.有的园友在分页控件开发时把数据源一起给绑定上了,具体怎样实现我并没太多研究,并不是我不认同这种方式,只是我觉的我的方法更加适合我.

 

    同样我也是利用分页控件来开发,我的分页控件只起到分页导航功能,它主要负责显示分页信息,和具体的数据源没有任何关系,无论是返回DataTable,DataSet,泛型实体集等等。它最大的特点就是分页导航功能和数据源解藕,功能更加灵活。

 

    下面就分享下我个人的做法,不妥之处望指教。


    第一:本文并是把分页控件开发做为重点,有兴趣的朋友可以到我的文章中查找,控件开发(8) (RSS) 这里就先帖图:

 

        图一为最终运行的效果图:

 

    图二:为分页控件的相关属性。此控件分页方式分为url分页(例如:default.aspx?page=1),回发式分页

 

      

      第二:有了分页导航控件,接下来就是取得数据记录了。

        1:数据的最底层:创建查询SQL,这里以一个比较常见的分页存储过程来完成,但又有它与众不同的地方.本人就不详细的说明这个存储过程的用法了,因为所有的说明在里面都有注释。上面的SQL和网上大家看到的通用分页存储过和差不多,主要是利用sql2005的row_number(),它接收页面记录数,索引页,查询条件,排序条件最终返回具体某一页的数据,以及记录总数等

            它与变通分页存储过程最大的不同就是:开发人员对于具体查询部分可以任意写,只是输入参数和返回参数相对固定而已。这点有点类似.net中的模块模式,哈哈,说的远了。


Code


        2:有了查询语句,然后就是在.net环境下封装数据供客户端调用:

 

Code

 

        3:接下来就是客户端绑定数据的操作了,为了说明方便,这里就以一个GridView 来节约时间了。

 

          第一: 页面HTML:

 

Code

 

          第二:后台代码:

 

Code

 

        第三: 最终的效果图:图三:

     从上面的所有过程来看,你要做的工作是什么呢?
 
    第一:把模板分页存储过程中具体查询语句修改下,例如关联其它表操作等等。
    第二:在业务需求页面中引用分页控件及数据绑定控件。
    第三:调用通用查询方法,输入每页记录数,索引页,存储过程名称,查询条件,排序条件查询出记录集。
    第四:设置分页控件相关参数,最重要的是每页记录数和记录总数,其它的可接收默认值。

    这样一个分页操作就基本完成,这就是我对于分页的处理过程,大家在分页时有什么高见不妨分享下。

    优点:

         1:开发员直接编码部分少;

         2:分页样式统一,管理方便;

         3:分页控件与数据库解藕,绑定数据方式灵活.

    缺点:

        1:优点2也就是它的缺点,全站统一分页样式,略显单调,不过可自定义控件样式.

        2:如果没有update pannel的支持,要想实现无刷新分页有一定的困难.

   

  

posted on 2008-09-22 00:53  min.jiang  阅读(5342)  评论(21编辑  收藏  举报