利用 pager-taglib :增、删记录后如何回到分页了的记录列表

    如果页面上存在一个按时间排序的记录列表,当我们增加了一条记录,应该跳转到记录的最后面,以看到刚刚增加的记录;当我们删除了一条记录,应该跳转到被删除记录的原来差不多的地方,以方便用户继续操作。

   如果列表是分页的,那么增加记录后应该是跳到最后一页;对于删除记录,删除前应把当前页码记下,删除后跳转到  <b> Min(最后一页,删除前的页码) </b>

    可以用 pager-taglib 来实现这两种机制。首先,它可以分页,可以让我们免于自己实现分页;其次,利用它分页后想跳转到某页只须在 url 里加上 pager.offset = 某页 即可,方便程序的实现。

 

   具体的实现方法:

      1.增加记录

        a.用户提交“增加记录”的表单,表单域中需包含隐藏变量:“每页记录数”

        b.服务器增加记录后,从数据库中算出记录的总数

        c.利用每页记录数和记录总数算出最后一页的pager.offset值

        d.跳转到该页

      2.删除记录

        a.用户提交“删除记录”的表单,表单域中需包含隐藏变量:“每页记录数”和“当前页码”

        b.服务器删除记录后,从数据库中算出记录的总数

        c.利用每页记录数和记录总数算出最后一页的pager.offset值

        d.求出 最后一页的页码 和 删除前的页码 中间的较小值

        e.跳转到这个较小值所代表的页面

   DisplayTag为什么不行? 因为利用它分页后如果想跳到某页,在url里要加上的东西是不确定的,URL中它的分页参数名值对 有时是 d-48098-p = 某页, 有时是  d-23456-p =某页,中间的数字是随机生成的,程序无法处理。

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.