zoukankan      html  css  js  c++  java
  • 你是如何面对大量分页需求的?

        在一个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的支持,要想实现无刷新分页有一定的困难.

       

      

  • 相关阅读:
    事务1-JDBC事务管理
    Tomcat地址栏传中文参数乱码问题处理
    hibernate报错:org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
    UVA12170 Easy Climb
    [POI2004]旅行问题
    [SCOI2010]股票交易
    [USACO11OPEN] Mowing the Lawn G
    查看文件个数 ls |wc -l
    【zombie】如何查看并杀死僵尸进程?
    [Windows] 屏幕截图
  • 原文地址:https://www.cnblogs.com/ASPNET2008/p/1295609.html
Copyright © 2011-2022 走看看